c # excel range.FormulaArray, wenn Sie Zeit haben, können Sie versuchen, unter c # Programm mit zwei verschiedenen FormulaArrays
-
20-08-2019 - |
Frage
kann mir jemand sagen, warum das nicht funktioniert,
Excel.Worksheet ws_res = (Excel.Worksheet)
wb.Worksheets.Add(mis, mis, mis, mis);
Excel.Range range_res = (Excel.Range)ws_res.get_Range("A1","HM232");
range_res.FormulaArray =
"=ROUND((IF((IF(Sheet4!A1:HM232=1,0,"+
"IF(Sheet4!A1:HM232=0,1,Sheet4!A1:HM232)))=1,0,"+
"IF((IF(Sheet4!A1:HM232=1,0,"+
"IF(Sheet4!A1:HM232=0,1,Sheet4!A1:HM232)))=0,1,("+
"IF(Sheet4!A1:HM232=1,0,"+
"IF(Sheet4!A1:HM232=0,1,Sheet4!A1:HM232)))))),0)";
, aber das tut
Excel.Worksheet ws_res = (Excel.Worksheet)
wb.Worksheets.Add(mis, mis, mis, mis);
Excel.Range range_res = (Excel.Range)ws_res.get_Range("A1","HM232");
range_res.FormulaArray =
"=ROUND((IF(Sheet4!A1:HM232=1,0,IF(Sheet4!A1:HM232=0,1,Sheet4!A1:HM232))),0)";
=============================================== ========
aber wenn ich kopieren und einfügen, die beiden oben genannten Formeln in die Formelleiste von Excel 2007 und drücken Sie Strg + Shift + Enter, beide arbeiten perfekt!
=============================================== ========
Ich habe auch in den beiden oben genannten Formeln A1 geändert: HM232 zu R1C1: R232C221, wieder von c # die kürzere funktioniert gut, aber je länger man nach wie vor erzeugt die Ausnahme
Lösung
Es funktioniert für mich. Ich muss davon ausgehen, dass Sie entweder keine Sheet4 haben (unwahrscheinlich, da die kürzere Formel funktioniert), oder dass Sie einen Tippfehler gemacht, wenn die Zitate zu entfernen, „+“ s, und Zeilenumbrüche. Hier ist, was ich in meiner Formel-Bar habe jetzt:
=ROUND((IF((IF(Sheet4!A1:HM232=1,0,IF(Sheet4!A1:HM232=0,1,Sheet4!A1:HM232)))=1,0,IF((IF(Sheet4!A1:HM232=1,0,IF(Sheet4!A1:HM232=0,1,Sheet4!A1:HM232)))=0,1,(IF(Sheet4!A1:HM232=1,0,IF(Sheet4!A1:HM232=0,1,Sheet4!A1:HM232)))))),0)
Andere Tipps
Aufgrund von Excel hat ein Problem Formula auszuführen, wenn die Zeichenfolge mehr als 255 Zeichen sind. Nervig. VBA hat einen runden Weg, C #, auf keinen Fall!