haben meine Experimente zeigten, dass die Formel die folgende Ausnahme ausgelöst:
Eine nicht behandelte Ausnahme des Typs 'System.NotSupportedException' in ClosedXML.dll aufgetreten
Hier ist die TestRig:
var wb = new ClosedXML.Excel.XLWorkbook();
var worksheet = wb.AddWorksheet("test");
worksheet.Cell("G3").Value = "fu";
worksheet.Cell("A1").Value = "fu";
worksheet.Cell("B1").Value = "bar";
worksheet.Cell("C1").Value = "baz";
worksheet.Cell("A2").Value = "fu2";
worksheet.Cell("B2").Value = "bar2";
worksheet.Cell("C2").Value = "baz2";
worksheet.Range("A1:C2").AddToNamed("OrganizationUnitsById");
var result = worksheet.Cell(3, 8);
result.FormulaA1 = "=IF(ISNA(VLOOKUP(G3,OrganizationUnitsById,2,FALSE)),"
+ ""
+ ",VLOOKUP(G3,OrganizationUnitsById,2,FALSE))";
wb.CalculateMode = ClosedXML.Excel.XLCalculateMode.Auto;
Console.WriteLine(result.Value); // throws exception
Der Grund, warum es ausgelöst wird, wird durch die Verwendung der ISNA
-Funktion in Ihrer Formel verursacht. Es isn't yet implemented. Das Entfernen von ISNA
aus Ihrer Formel behebt die Berechnungsprobleme, führt jedoch zu einem anderen Verhalten dieser Formel.
Sie müssen eine Alternative für die ISNA
Funktion finden. Wählen Sie zum Zeitpunkt des Schreibens eine der folgenden Optionen aus: ISBLANK, ISEVEN, ISLOGICAL, ISNUMBER, ISODD, ISTEXT, N, oder gestalten Sie die Daten in Ihrer Nachschlagetabelle so, dass Sie die Prüfung auf "ISNA" nicht benötigen.
Da mein Beispiel mit 0.88 getestet wurde, konnte die Beta-Version ClosedXML 0.89.0-beta1 abgerufen werden, da ISNA
implementiert ist.
Ich habe es in ClosedXML erstellt. Aber Berechnung ist nicht geschehen. Wenn ich Excel öffne und ich diese Formel wieder gebe, dann berechne es –
Wie kann ich die Berechnung auf eine andere Weise tun? –
Aber ClosedXML hat Berechnungsmodus Eigenschaft, ich habe es verwendet, es hat nicht wieder funktioniert –