Array füllen in Excel VBA
Schritt-für-Schritt-Anleitung
Um ein Array in Excel VBA zu füllen, kannst Du folgende Schritte befolgen:
-
Array definieren: Zuerst musst Du das Array definieren. Dies kann entweder als eindimensionales oder mehrdimensionales Array geschehen.
Dim ArrOBST() As Variant
ReDim ArrOBST(0 To 100, 0 To 2) ' Beispiel für ein 2D-Array
-
Hilfszähler einfügen: Um sicherzustellen, dass die Werte immer an die nächste freie Position geschrieben werden, solltest Du eine Variable als Zähler verwenden.
Dim HilfsZaehler As Long
HilfsZaehler = 0
-
Daten ins Array füllen: Verwende eine Schleife, um die Werte in das Array zu schreiben und den Zähler nach jedem Eintrag zu erhöhen.
For i = 0 To rs.RecordCount - 1
ArrOBST(HilfsZaehler, 0) = iTab
ArrOBST(HilfsZaehler, 1) = rs!Distance
ArrOBST(HilfsZaehler, 2) = rs!Elevation
HilfsZaehler = HilfsZaehler + 1
rs.MoveNext
Next i
-
Daten anzeigen: Um die Daten im ListView anzuzeigen, kannst Du den folgenden Code verwenden.
With ListView1
With .ListItems.Add(Text:=ArrOBST(HilfsZaehler, 1))
.SubItems(1) = ArrOBST(HilfsZaehler, 2)
End With
End With
Häufige Fehler und Lösungen
-
Kein Array-Wert gefunden: Achte darauf, dass der Zähler ordnungsgemäß erhöht wird. Wenn der Zähler nicht korrekt funktioniert, kann es sein, dass Du beim Füllen des Arrays auf leere Werte stößt.
-
Leere Zeilen im ListView: Wenn das ListView nach dem Füllen des Arrays leere Zeilen anzeigt, könnte das daran liegen, dass das Array nicht vollständig gefüllt wurde. Überprüfe die Schleifenbedingungen und stelle sicher, dass das Array korrekt gefüllt wird.
-
Falsche Sortierung: Wenn das ListView nicht korrekt sortiert ist, kann es helfen, die Sortierlogik zu überprüfen. Achte darauf, dass Du die Daten vor der Sortierung korrekt hinzufügst.
Alternative Methoden
-
Array mit Werten füllen: Du kannst auch ein Array direkt mit Werten füllen, ohne eine Schleife zu verwenden:
ArrOBST = Array(Array("Wert1", "Wert2"), Array("Wert3", "Wert4"))
-
Excel VBA Array definieren und füllen: Nutze Split für das Füllen eines eindimensionalen Arrays:
Dim Arr() As String
Arr = Split("Wert1,Wert2,Wert3", ",")
Praktische Beispiele
Hier ist ein einfaches Beispiel, wie Du ein Excel VBA Array füllen kannst:
Sub Beispiel()
Dim ArrOBST(0 To 10, 0 To 2) As Variant
Dim i As Integer
Dim HilfsZaehler As Long
HilfsZaehler = 0
For i = 0 To 10
ArrOBST(HilfsZaehler, 0) = "Tab" & i
ArrOBST(HilfsZaehler, 1) = i * 10
ArrOBST(HilfsZaehler, 2) = i * 20
HilfsZaehler = HilfsZaehler + 1
Next i
End Sub
Tipps für Profis
-
Verwende ReDim Preserve: Wenn Du die Größe eines bereits gefüllten Arrays ändern möchtest, nutze ReDim Preserve, um die bestehenden Werte zu behalten.
-
Fehlerbehandlung einfügen: Implementiere eine Fehlerbehandlung, um Probleme beim Füllen des Arrays zu erkennen und zu beheben.
-
Verwende VBA-Funktionen: Nutze VBA-Funktionen wie UBound und LBound, um die Grenzen des Arrays zu ermitteln und Fehler zu vermeiden.
FAQ: Häufige Fragen
1. Wie kann ich ein eindimensionales Array in Excel VBA füllen?
Du kannst ein eindimensionales Array mit einer Schleife füllen, indem Du einfach die Indizes anpasst.
2. Was ist der Unterschied zwischen einem eindimensionalen und einem mehrdimensionalen Array?
Ein eindimensionales Array hat nur eine Dimension, während ein mehrdimensionales Array mehrere Dimensionen hat, was bedeutet, dass Du Daten in einer Matrix speichern kannst.
3. Wie kann ich die Größe eines Arrays nach dem Füllen ändern?
Verwende ReDim Preserve, um die Größe eines Arrays zu ändern, ohne die bestehenden Daten zu verlieren.