OpenOffice.Calc: Per Script einer Zelle eine Formel zuweisen
Joerg
- programmiertechnik
Hallo,
ich habe gerade das Problem, dass ich einer Zelle eine Formel zuweisen möchte. Hier ein Auszug aus dem Code:
for i = 1 to 31
if i < 10 then
monat = "0" + i
else
monat = i
end if
oSheet = oCalcDokument.getSheets().getByName(monat)
oSelektion = oSheet.getCellRangeByName("A1")
oSelektion = "=CONCATENATE(Optionen.C3; ' '; i; '. '; Optionen.C2; ' '; Optionen.D2)"
next
Wobei 'Optionen' der Name eines Tabellenblattes darstellt. Das Kopieren des Sheets läuft so durch, nur beim Einfügen der Formel in die Zelle kommt eine nichtssagende Fehlermeldung. Folgends wird in die Zelle eingetragen:
=VERKETTEN(#REF!.C3;" "; "1. "; #REF!.C2; " "; #REF!.D2)
Wie kann ich es besser machen?
Vielen Dank,
Joerg
Moin,
oSelektion = "=CONCATENATE(Optionen.C3; ' '; i; '. '; Optionen.C2; ' '; Optionen.D2)"
Früher gab es dafür die Eigenschaft "Formula" für eine Zelle. Ob das heute noch so ist, kann ich nicht sagen.
Probiers einfach mal aus:
oSelektion.Formula = "=..."
Grüße Marco
Hi,
Das Kopieren des Sheets läuft so durch, nur beim Einfügen der Formel in die Zelle kommt eine nichtssagende Fehlermeldung.
[...]
Wie kann ich es besser machen?
auf gar keinen Fall den Wortlaut der Fehlermeldung verraten, der könnte ja jemand anderem einen Hinweis geben. ;-)
Folgends wird in die Zelle eingetragen:
=VERKETTEN(#REF!.C3;" "; "1. "; #REF!.C2; " "; #REF!.D2)
Also wird der Bezug auf das Tabellenblatt "Optionen" nicht erkannt. Heißt das Sheet wirklich so?
Von Libre Office, das ja vergleichbar und kompatibel sein möchte, kenne ich es bei automatisch eingetragenen Zellbezügen so, dass der Name des Sheets in einfachen Anführungszeichen steht. Also in deinem Fall z.B.
oSelektion = "=CONCATENATE('Optionen'.C3; ' '; i; '. '; 'Optionen'.C2; ' '; 'Optionen'.D2)"
Zumindest steht's nachher so in der Zelle; ob das beim Scripting auch so sein muss, weiß ich nicht genau.
Ciao,
Martin