
Ich verwende Code, um eine Tabelle zu generieren, die eine Formel für eine Zelle in bestimmten Zeilen enthält. Wenn ich das mache, stimmt etwas mit der Formel nicht, und wenn ich versuche, die Tabelle zu öffnen, fragt Excel, ob es das Blatt reparieren soll. Wenn ich „ja“ sage, werden alle Spuren meiner Formel aus dem Blatt entfernt. Wenn ich „nein“ sage, wird das Öffnen des Blatts nicht abgeschlossen.
Gibt es eine Möglichkeit, die Tabelle ohne die Reparatur zu öffnen, damit ich die Formel prüfen kann, wie sie von meinem Code generiert wird? Wenn ich die Formel kopiere und in eine der Zellen einfüge, aus denen sie entfernt wurde, funktioniert es einwandfrei. Ich muss wirklich sehen, was mit der Formel in meiner generierten Tabelle nicht stimmt, wenn ich sie öffne. Gibt es eine Möglichkeit, dies zu tun?
Ich füge die Formel mithilfe des folgenden Codes aus der EPPlus-Excel-Bibliothek hinzu:
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;
}
Bitte beachten Sie, dass diese Formel funktioniert, wenn ich sie {r}
durch eine entsprechende Zeilennummer ersetze und die Formel in das Blatt einfüge.
Antwort1
Excel fragt, ob das Blatt repariert werden soll. Wenn ich „ja“ sage, werden alle Spuren meiner Formel aus dem Blatt entfernt. Wenn ich „nein“ sage, wird das Blatt nicht vollständig geöffnet.
Ich denke, Sie haben hier alle Optionen ausprobiert.
Eine Problemumgehung kann darin bestehen, Ihre Formel als Text () in die Zelle einzufügen ws.Cells[$"F{r}"].Value = amountFormula;
. Anschließend können Sie Ihr Blatt öffnen und Ihre Formel prüfen.
(Wenn Excel Ihre Formel trotzdem noch bemängelt, können Sie auch ein vorangestelltes '
: hinzufügen. ws.Cells[$"F{r}"].Value = "'" & amountFormula;
)