Mehrere Zeilen auf einmal über Objekt-Funktionen einfügen.

26/03/2010 - 06:25 von Hans Hegau | Report spam
Hallo NG,

ich versuche mit Visual Basic 6 mehrere Zeilen auf einmal in Excel mit
Daten zu füllen.
Dafür verwende ich die Objekt-Funktionen von Excel.
Es funktioniert auch ohne Probleme, wenn ich jeden Wert einzeln in
die
Tabelle schreib:

For i = 1 to 1000
XLWorkSheet.range("B" & i).Value = strWert(i)
Next i

Doch dies ist relativ langsam.
Jetzt hatte ich mir vorgestellt alle Werte durch vbCrLf (Carriage
Return & Line Feed) trennen und in
eine Variable zu schreiben.
Diese dann auf einmal in die Excel Tabelle zu schreiben:

For i = 1 to 1000
strVar = strVar & strWert(i)
Next i
XLWorkSheet.range("B1").Value = strVar

Doch leider funktioniert das nicht! Es wird nur ein Feld mit dem
kompletten Inhalt gefüllt.

Wenn ich den Range àndere funktioniert es auch nicht!!
XLWorkSheet.range("B1:B1001").Value = strVar
Da werden in alle Felder alle Werte geschrieben :-(

Kann mir jemand weiterhelfen??

Danke schon mal.

MfG, Hans Hegau
 

Lesen sie die antworten

#1 Peter Schleif
26/03/2010 - 06:46 | Warnen spam
Hans Hegau schrieb am 26.Mrz.2010 06:25 Uhr:

ich versuche mit Visual Basic 6 mehrere Zeilen auf einmal in Excel mit
Daten zu füllen.

For i = 1 to 1000
strVar = strVar & strWert(i)
Next i
XLWorkSheet.range("B1:B1001").Value = strVar
Da werden in alle Felder alle Werte geschrieben :-(



Du musst dem Bereich ein 2-dimensionales Array zuweisen, keinen String
mit Zeilenumbrüchen. Die erste Dimension des Array dehnt sich vertikal
aus, die Zweite horizontal:

Peter

Sub test()
Dim i As Long
Dim arrVar(1 To 1000, 1 To 1) As Variant

For i = 1 To 1000
arrVar(i, 1) = i
Next i

Range("B1:B1000") = arrVar
End Sub

Ähnliche fragen