Zwei Arrays in Excel verbinden
Schritt-für-Schritt-Anleitung
Um zwei Arrays in Excel zu verbinden, kannst Du die folgende Funktion verwenden. Stelle sicher, dass Du die Option Explicit verwendest, um mögliche Fehler zu vermeiden.
Option Explicit
Function ArraysVerbinden(Array1() As Integer, Array2() As Integer) As Integer()
Dim ArrayNeu() As Integer
Dim cnt As Integer, i As Integer
cnt = 0
ReDim ArrayNeu(UBound(Array1) + UBound(Array2) + 1) ' Dimensionen vorher bestimmen
' Erstes Array hinzufügen
For i = 0 To UBound(Array1)
ArrayNeu(cnt) = Array1(i)
cnt = cnt + 1
Next i
' Zweites Array hinzufügen
For i = 0 To UBound(Array2)
ArrayNeu(cnt) = Array2(i)
cnt = cnt + 1
Next i
ArraysVerbinden = ArrayNeu
End Function
Verwende die Funktion in einem Sub, um die beiden Arrays zu verbinden:
Sub Test()
Dim Arr1(4) As Integer
Dim Arr2(4) As Integer
Dim Arr3() As Integer
' Erstes Array füllen
Arr1(0) = 1
Arr1(1) = 2
Arr1(2) = 3
Arr1(3) = 4
Arr1(4) = 5
' Zweites Array füllen
Arr2(0) = 6
Arr2(1) = 7
Arr2(2) = 8
Arr2(3) = 9
Arr2(4) = 10
' Arrays zusammenfügen
Arr3 = ArraysVerbinden(Arr1, Arr2)
Debug.Print UBound(Arr3) ' Ausgabe des oberen Index
End Sub
Häufige Fehler und Lösungen
-
Typen unverträglich: Wenn Du beim Debuggen die Meldung "Typen unverträglich" erhältst, überprüfe, ob Du die richtigen Datentypen für Deine Arrays verwendest. Stelle sicher, dass die Arrays gleich deklariert sind.
-
Funktion gibt kein Array zurück: Wenn Du eine Funktion verwendest, die kein Array zurückgibt, stelle sicher, dass Du As Integer() in der Funktionsdefinition angibst.
-
Option Explicit: Vergiss nicht, Option Explicit am Anfang Deiner Module zu verwenden, um sicherzustellen, dass alle Variablen vorher deklariert sind.
Alternative Methoden
Eine alternative Methode zum Verbinden von Arrays besteht darin, ein öffentliches Array zu verwenden. Hier ist ein Beispiel:
Option Explicit
Public Arrayneu() As Integer
Sub ArraysVerbinden(Array1() As Integer, Array2() As Integer)
Dim cnt As Integer
Dim i As Long
cnt = 0
ReDim Arrayneu(UBound(Array1) + UBound(Array2) + 1)
' Arrays füllen
For i = 0 To UBound(Array1)
Arrayneu(cnt) = Array1(i)
cnt = cnt + 1
Next i
For i = 0 To UBound(Array2)
Arrayneu(cnt) = Array2(i)
cnt = cnt + 1
Next i
End Sub
Verwende diese Methode, wenn Du das Ergebnis in einem öffentlichen Array speichern möchtest.
Praktische Beispiele
Hier ist ein einfaches Beispiel, wie Du zwei Arrays zusammenfügen kannst:
Sub Beispiel()
Dim Arr1(2) As Integer
Dim Arr2(2) As Integer
Dim Arr3() As Integer
Arr1(0) = 10
Arr1(1) = 20
Arr1(2) = 30
Arr2(0) = 40
Arr2(1) = 50
Arr2(2) = 60
Arr3 = ArraysVerbinden(Arr1, Arr2)
For i = 0 To UBound(Arr3)
Debug.Print Arr3(i) ' Ausgabe: 10, 20, 30, 40, 50, 60
Next i
End Sub
Tipps für Profis
-
Dynamische Arrays: Verwende ReDim Preserve, um die Größe des Arrays dynamisch anzupassen, während Du Elemente hinzufügst. Das ist nützlich, wenn Du nicht vorher weißt, wie viele Elemente Du benötigst.
-
Datenvalidierung: Führe eine Prüfung auf die Größe der Arrays durch, bevor Du sie verbindest, um sicherzustellen, dass sie die erwarteten Werte enthalten.
-
Verwendung von Collections: In einigen Fällen kann es vorteilhaft sein, statt Arrays Collections zu verwenden, da sie flexibler sind und einfachere Methoden zur Verwaltung von Elementen bieten.
FAQ: Häufige Fragen
1. Kann ich Arrays mit unterschiedlichen Datentypen zusammenfügen?
Nein, die Arrays müssen den gleichen Datentyp haben. Achte darauf, dass Du Integer-Arrays verwendest, wenn Du mit der Funktion arbeitest.
2. Wie kann ich mehr als zwei Arrays zusammenfügen?
Du kannst die Funktion erweitern oder eine Schleife verwenden, um mehrere Arrays nacheinander zu verketten.
3. Gibt es eine eingebaute Excel-Funktion, um Arrays zu verbinden?
Excel bietet keine spezielle Funktion zum Zusammenfügen von Arrays, aber Du kannst die oben genannten VBA-Methoden verwenden, um dies zu erreichen.
4. Ist dies in allen Excel-Versionen verfügbar?
Die gezeigten VBA-Beispiele sind in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2016 und später.