Hallo,
ich möchte mit folgenden Befehlen Formeln in ein Sheet eintragen:
rem ab Zelle E2 Formeln für Breite/Höhe/Format/Preisbasis/Preis einfügen --
Cell = Sheet.getCellRangeByName("E2")
Cell.Formula = "=WENNFEHLER(RUNDEN(ZAHLWERT(REGAUS(A2;"".*_(rund |oval ){0,1}([:digit:]+,{0,1}[:digit:]*)(x([:digit:]+,{0,1}[:digit:]*)){0,1}[^[:digit:]].*"";""$2"");"","");0);0)"
Cell = Sheet.getCellRangeByName("F2")
Cell.Formula = "=WENNFEHLER(RUNDEN(ZAHLWERT(REGAUS(A2;"".*_(rund |oval ){0,1}([:digit:]+,{0,1}[:digit:]*)(x([:digit:]+,{0,1}[:digit:]*)){0,1}[^[:digit:]].*"";""$4"");"","");0);0)"
Cell = Sheet.getCellRangeByName("G2")
Cell.Formula = "=WENNS(UND(E2=0;F2=0);"""";REGAUS(A2;"".*_(rund |oval ){0,1}.*"";""$1"")=""rund "";""rund"";REGAUS(A2;"".*_(rund |oval ){0,1}.*"";""$1"")=""oval "";""oval"";E2=F2;""quadratisch"";E2>F2;""quer"";1;""hoch"")"
Cell = Sheet.getCellRangeByName("H2")
Cell.Formula = "=WENNS(NICHT(ISTFEHLER(FINDEN(""Technik|Druck"";B2;1)));""Druck"";NICHT(ISTFEHLER(FINDEN(""Material|Leinwand"";B2;1)));""Leinwand"";1;""Papier"")"
Cell = Sheet.getCellRangeByName("I2")
Cell.Formula = "=RUNDEN(WENN(H2=""Papier"";(E2+F2)*7,5/2;WENN(H2=""Leinwand"";(E2+F2)*7,5;0));0)"
Das Ergebnis im Sheet sieht danach aber folgendermaßen aus:
#NAME? #NAME? #NAME? #NAME? #NAME?
Wenn ich allerdings dann mit fx in einer der Zellen den Formelassistenten aktiviere zeigt der mir die Formel als korrekt an und liefert auch das erwartete Ergebnis.
Nach dem Schließen des Formelassistenten wird das korrekte Ergebnis dann auch in der Zelle angezeigt.
Was mache ich falsch?
Gunther King
OS:
Windows 11
LibreOffice:
Version: 7.5.0.3 (X86_64) / LibreOffice Community
Build ID: c21113d003cd3efa8c53188764377a8272d9d6de
CPU threads: 12; OS: Windows 10.0 Build 22621; UI render: default; VCL: win
Locale: de-AT (de_AT); UI: de-DE
Calc: CL threaded
[edit erAck: formatted code as code, please see This is the guide - How to use the Ask site? - #6 by erAck]