Reihe eines Arrays an neues Array übergeben in Excel
Schritt-für-Schritt-Anleitung
Um eine komplette Reihe eines Arrays in ein neues Array in Excel zu übergeben, kannst du die folgenden Schritte befolgen:
-
Daten in ein Array laden:
Zuerst musst du deine Daten in ein Array laden. Das kannst du so machen:
Dim ar As Variant
ar = Range("A1").CurrentRegion.Value
-
Neues Array deklarieren:
Erstelle ein neues Array, das die gewünschten Daten speichern soll:
Dim newArray() As Variant
-
Reihen aus dem ursprünglichen Array zuweisen:
Verwende die WorksheetFunction.Index
Methode, um eine komplette Reihe zuzuweisen. Hier ist ein Beispiel, um die 350. Reihe zu verwenden:
newArray = Application.WorksheetFunction.Index(ar, 350, 0)
-
Daten zurück in das Excel-Blatt schreiben:
Schreibe das neue Array zurück ins Arbeitsblatt:
Range("A1").Resize(1, UBound(newArray, 2)).Value = newArray
Häufige Fehler und Lösungen
Alternative Methoden
Wenn du keine Schleifen verwenden möchtest, kannst du die Index
-Methode von Excel verwenden, um gezielt auf bestimmte Reihen zuzugreifen. Eine weitere Option ist die Verwendung von Application.Transpose
, um die Daten in ein neues Format zu bringen, auch wenn dies bei großen Datenmengen problematisch sein kann.
Praktische Beispiele
Hier ist ein praktisches Beispiel, um jede 10. Zeile eines Arrays auszuwählen und in ein neues Array zu speichern:
Dim sourceArray As Variant
Dim filteredArray() As Variant
Dim i As Long, counter As Long
sourceArray = Range("A1").CurrentRegion.Value
ReDim filteredArray(1 To Application.WorksheetFunction.RoundUp(UBound(sourceArray, 1) / 10, 0))
counter = 1
For i = 1 To UBound(sourceArray, 1)
If i Mod 10 = 0 Then
filteredArray(counter) = sourceArray(i, 1)
counter = counter + 1
End If
Next i
Tipps für Profis
-
Nutze die Application.ScreenUpdating
und Application.Calculation
Eigenschaften, um die Ausführungsgeschwindigkeit zu erhöhen, wenn du mit großen Datenmengen arbeitest:
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
' Dein Code hier
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
-
Experimentiere mit der WorksheetFunction.Rank
-Methode, um Ränge in deinem Array zu bestimmen, falls das für deine Analyse relevant ist.
FAQ: Häufige Fragen
1. Kann ich mit VBA auf mehrdimensionale Arrays zugreifen?
Ja, du kannst mit VBA auf mehrdimensionale Arrays zugreifen, indem du die entsprechenden Indizes verwendest.
2. Gibt es eine maximale Größe für Arrays in Excel?
Ja, bei Excel gibt es Einschränkungen für die Größe von Arrays, die je nach Version variieren können. Bei großen Datenmengen ist es ratsam, die Anzahl der Elemente zu reduzieren.