ich hangele mich von Funktion zu Funktion weiter. Arbeitsergebnisse werden jeweils über ein globales Array aGlobal() weitergegeben. Am Ende jeder Funktion steht eine Datei, die – gespeichert oder nicht – als gerade geöffnetes Dokument in die nächste Funktion (oDoc1 = ThisComponent) übernommen wird. Im konkreten Fall ist dies ein vorher gespeichertes leeres Calc-Dokument.
Aktuell gelingt es mir, die aus aGlobal() in aNamen() übernommenen Daten in das geöffnete Calc-Dokument einzutragen. Bis Zeile 13 des Codes funktioniert alles. Auch Zeile 14 (Füllen des Arrays aKopf()) und Zeile 15 werden akzeptiert. Dann aber gibt es in Zeile 16, der letzten Zeile des Codes, folgende Fehlermeldung: "Basic-Laufzeitfehler - Objektvariable nicht belegt."
Code: Alles auswählen
Function Calc_Datei_erstellen
Dim oDoc1 as Object, arg(), aNamen(), oBereich as Object, z as Integer, aDat(), aKopf()
oDoc1 = ThisComponent
aNamen() = aGlobal()
z = Ubound(aNamen())
aDat() = aNamen()
Redim Preserve aDat(1 to z, 22)
oBereich = oDoc1.Sheets(0).getCellRangeByName("f2:ab24")
oBereich.setDataArray(aDat())
aDat() = aNamen()
Redim Preserve aDat(1 to z, 23 to 23)
oBereich = oDoc1.Sheets(0).getCellRangeByName("d2:d24")
oBereich.setDataArray(aDat())
aKopf() = array("ID", "klasse", "nr")
oBereich = oDoc1.Sheets(0).getCellRangeByName("a1:c1")
oBereich.setDataArray(aKopf())
End Function
MfG Mr.Ed