Seite 1 von 1

VB6: Mehrere Zeilen auf einmal in Calc schreiben

Verfasst: Di, 30.03.2010 13:18
von glashans
Hallo,

ich versuche mehrere Zeilen auf einmal in OpenOffice Calc mit Daten zu füllen.
Es funktioniert auch ohne Probleme, wenn ich jeden Wert einzeln in die
Tabelle schreib:

Code: Alles auswählen

For i = 1 to 1000 
    Call oSheet.GetCellByPosition(1 + ii, i + 7).SetFormula(strTemp(i)) 
Next i 
Doch dies ist relativ langsam, da es sich um mehrere 1000 Werte handeln kann.
Jetzt hatte ich mir vorgestellt alle Werte durch vbCrLf trennen und in
eine Variable zu schreiben.
Diese dann auf einmal in die Tabelle zu schreiben:

Code: Alles auswählen

For i = 1 to 1000 
    strVar = strVar & strWert(i)  & vbCrLf
Next i 
Call oSheet.GetCellByPosition(1, 7).SetFormula(strVar)
Doch leider funktioniert das nicht!

Kann mir vielleicht jemand weiterhelfen wie man mehrere Zeilen/Spalten auf einmal in die Tabelle schreibt??
Vielleicht mit einer Feldvariablen?
Einem 2-dimensionalen Array?

Danke schon mal.

MfG, Hans Hegau

Re: VB6: Mehrere Zeilen auf einmal in Calc schreiben

Verfasst: Di, 30.03.2010 15:13
von Karolus
Hallo
Ein Zellbereich verfügt über die Methoden .setDataarray bzw. setFormulaarray
Diesen Methoden muss aber ein 2dimensionaler Array übergeben werden (1. Dimension sind die Zeilen , die 2. die Spalten )auch wenn die 2.Dimension nur aus 1 Spalte besteht.

Etwas Beispielscode:

Code: Alles auswählen

Sub datenarray
'Zahlen mit Punkt als Dezimaltrenner, Formeln mit englischen Funktionsbezeichnungen
aindat = array("Montag","dienstag","3.14","Donnerstag","=sum(A3:A5)")  '1 dimensionaler Array
idimension = ubound(aindat())
startzeile = 3
'in der for-schleife wird aindat 2dimensional
for i = 0 to idimension
	aindat(i) = array(aindat(i))
next i
'Der Zellbereich mit den identischen Dimensionen wie aindat wird befüllt
Zielrange = thiscomponent.sheets(0).getcellrangebyposition( 2 , startzeile , 2 , startzeile + idimension)
zielrange.setformulaarray(aindat())
'oder 
'zielrange.setdataarray(aindat())

End Sub
Gruß Karo

Re: VB6: Mehrere Zeilen auf einmal in Calc schreiben

Verfasst: Di, 30.03.2010 15:16
von turtle47
Hallo Hans,

schau Dich mal nach setDataArray hier und im englischen Forum um.

Viel Erfolg.

Jürgen