
我正在使用程式碼產生電子表格,包括某些行上單元格的公式。當我這樣做時,公式有問題,當我嘗試開啟電子表格時,Excel 詢問是否應該修復工作表。如果我說“是”,它會通過從工作表中刪除我的配方的所有痕跡來實現這一點。如果我說不,它就不會完成打開工作表的操作。
有沒有辦法可以打開電子表格而無需修復,以便我可以檢查由我的程式碼產生的公式。如果我將公式複製並貼上到從中刪除的其中一個儲存格中,它就可以正常工作。當我打開生成的工作表時,我真的需要看看它的公式有什麼問題。有什麼辦法可以做到這一點嗎?
我在 EPPlus Excel 庫上使用以下程式碼新增公式:
for (var r = startAt + 2; r < endAt; r++)
{
var amountFormula =
$@"=SWITCH(C{r}; ISBLANK(D{r}); """"; ""Percentage""; IF(ISNUMBER(D{r}); D{r}; 0) * IF(ISNUMBER(E{r}); E{r}; 0) / 100; IF(ISNUMBER(D{r}); D{r}; 0) * IF(ISNUMBER(E{r}); E{r}; 0))";
ws.Cells[$"F{r}"].Formula = amountFormula;
}
請注意,如果我替換{r}
為正確的行號並將公式貼到工作表中,則該公式有效。
答案1
Excel 詢問是否應修復工作表。如果我說“是”,它會通過從工作表中刪除我的配方的所有痕跡來實現這一點。如果我說不,它就不會完成打開工作表的操作。
我想你已經在這裡嘗試了所有的選擇。
解決方法是將公式作為文字插入儲存格 ( ws.Cells[$"F{r}"].Value = amountFormula;
),然後您就可以開啟工作表並檢查公式。
(如果 Excel 仍然抱怨您的公式,您甚至可以添加前面的'
: ws.Cells[$"F{r}"].Value = "'" & amountFormula;
)