Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mehrdimensionale arrays verbinden

Mehrdimensionale arrays verbinden
20.02.2008 14:36:00
chris
Hallo VBA Profis,
ich habe ein problem um bitte um Hilfe.
habe ein bzw. meherer mehrdimensionales Arrays.
Wie kann ich diese miteinander verbinden ? So das ich am ende nur noch eines habe.
Es soll aber mehrdimensional bleiben weil ich alle einträge benötige.
Würde mich sehr über Hilfe freuen.
Vielen Dank gruß Chris

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrdimensionale arrays verbinden
20.02.2008 15:25:00
fcs
Hallo Chris,
da wird dir nichts anderes überbleiben, als ein neues Array per ReDim auf die erforderliche Größe zu deklarieren und dann in einer Serie von For-Next-Schleifen die Daten aus den existierenden Arrays in das neue Array and die korrekte Position zu schreiben.
Die existierenden Array lassen sich per ReDim Preserve ja nur in der letzten Dimension ohne Datenverlust anpassen, was ggf. für deine Zwecke nicht reicht, um weitere Daten anzuhängen.
Gruß
Franz

Anzeige
AW: Mehrdimensionale arrays verbinden
21.02.2008 02:47:29
Franc
mit Beispieldatei könnte man was maßschneidern ^^
ich würde es so machen
mußte jetzt natürlich 5 arrays frei vorbestücken ;-)

Sub mehr()
Dim Beispiel_Array(5), Aktuelle_Dimension, Position_Aktuelles_Array, gesamt As Integer,  _
tmp_Array, tmp_Array_Pos, a
Beispiel_Array(0) = Array("1", "2", "3", "4", "5")
Beispiel_Array(1) = Array("A", "B", "C", "D", "E")
Beispiel_Array(2) = Array("6", "7", "8", "9", "10")
Beispiel_Array(3) = Array("F", "G", "H", "I", "J")
Beispiel_Array(4) = Array("11", "12", "13", "14", "15")
gesamt = 5 + UBound(Beispiel_Array(0)) + UBound(Beispiel_Array(1)) + UBound(Beispiel_Array(2)) + _
UBound(Beispiel_Array(3)) + UBound(Beispiel_Array(4))
ReDim tmp_Array(gesamt - 1)
tmp_Array_Pos = 0
For Aktuelle_Dimension = 0 To 4
For Position_Aktuelles_Array = 0 To UBound(Beispiel_Array(Aktuelle_Dimension))
tmp_Array(tmp_Array_Pos) = Beispiel_Array(Aktuelle_Dimension)(Position_Aktuelles_Array)
tmp_Array_Pos = tmp_Array_Pos + 1
Next Position_Aktuelles_Array
Next Aktuelle_Dimension
Beispiel_Array(5) = tmp_Array
End Sub


Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Mehrdimensionale Arrays in Excel VBA verbinden


Schritt-für-Schritt-Anleitung

Um mehrere mehrdimensionale Arrays in Excel VBA zu verbinden, kannst du folgendes Verfahren anwenden:

  1. Neues Array deklarieren: Erstelle ein neues Array mit der Größe, die du benötigst. Du kannst dies mit ReDim tun. Achte darauf, dass du das Array in der letzten Dimension mit Preserve anpasst, um Datenverlust zu vermeiden.

    Dim neuesArray() As Variant
    ReDim neuesArray(0 To gesamt - 1)
  2. Daten kopieren: Verwende eine For-Next-Schleife, um die Werte aus den existierenden Arrays in das neue Array zu kopieren.

  3. Anpassung der Dimensionen: Stelle sicher, dass das neue Array die korrekten Dimensionen hat, um alle Werte aufzunehmen.

Hier ist ein einfaches Beispiel:

Sub ArraysVerbinden()
    Dim arr1(1 To 3, 1 To 2) As Variant
    Dim arr2(1 To 3, 1 To 2) As Variant
    Dim gesamt() As Variant
    Dim i As Integer, j As Integer, pos As Integer

    ' Beispiel-Daten
    arr1(1, 1) = "A1": arr1(1, 2) = "B1"
    arr1(2, 1) = "A2": arr1(2, 2) = "B2"
    arr1(3, 1) = "A3": arr1(3, 2) = "B3"

    arr2(1, 1) = "C1": arr2(1, 2) = "D1"
    arr2(2, 1) = "C2": arr2(2, 2) = "D2"
    arr2(3, 1) = "C3": arr2(3, 2) = "D3"

    ' Neues Array erstellen
    ReDim gesamt(1 To 6, 1 To 2)

    ' Daten kopieren
    pos = 1
    For i = 1 To 3
        For j = 1 To 2
            gesamt(pos, j) = arr1(i, j)
        Next j
        pos = pos + 1
    Next i
    For i = 1 To 3
        For j = 1 To 2
            gesamt(pos, j) = arr2(i, j)
        Next j
        pos = pos + 1
    Next i
End Sub

Häufige Fehler und Lösungen

  • Fehler: "Array-Dimensionen überschreiten"

    • Ursache: Du hast die Dimensionen des neuen Arrays nicht korrekt definiert. Stelle sicher, dass du die Größe des neuen Arrays entsprechend der Anzahl der Elemente in den Ausgangsarrays festlegst.
  • Fehler: Datenverlust beim ReDim

    • Lösung: Verwende ReDim Preserve, um sicherzustellen, dass die vorhandenen Daten nicht verloren gehen. Beachte jedoch, dass dies nur für die letzte Dimension funktioniert.

Alternative Methoden

Wenn du Excel-Arrays zusammenfügen möchtest, gibt es auch alternative Methoden:

  1. Verwendung von Collections: Du kannst eine Collection verwenden, um die Daten zu speichern und später in ein Array zu konvertieren.
  2. Excel-Funktionen: Für einfache Zusammenführungen kannst du Funktionen wie VERKETTEN oder TEXTVERKETTEN nutzen, um Zellinhalte zusammenzuführen, aber dies ist nicht für mehrdimensionale Arrays geeignet.

Praktische Beispiele

Hier ist ein einfaches Beispiel, wie man zwei mehrdimensionale Arrays zu einem neuen Array zusammenführen kann:

Sub ZweiArraysZusammenfuegen()
    Dim array1(1 To 2, 1 To 2) As Variant
    Dim array2(1 To 2, 1 To 2) As Variant
    Dim finalArray() As Variant
    Dim i As Integer, j As Integer, index As Integer

    ' Initialisierung der Arrays
    array1(1, 1) = "1": array1(1, 2) = "2"
    array1(2, 1) = "3": array1(2, 2) = "4"

    array2(1, 1) = "A": array2(1, 2) = "B"
    array2(2, 1) = "C": array2(2, 2) = "D"

    ' Größe des finalen Arrays festlegen
    ReDim finalArray(1 To 4, 1 To 2)

    ' Daten kopieren
    index = 1
    For i = 1 To 2
        For j = 1 To 2
            finalArray(index, j) = array1(i, j)
        Next j
        index = index + 1
    Next i

    For i = 1 To 2
        For j = 1 To 2
            finalArray(index, j) = array2(i, j)
        Next j
        index = index + 1
    Next i
End Sub

Tipps für Profis

  • Verwende Dictionary: Wenn du mit mehrdimensionalen Arrays arbeitest, kann die Verwendung eines Dictionary-Objekts hilfreich sein, um Daten effizient zu verwalten und auf sie zuzugreifen.
  • Performance: Bei großen Datenmengen solltest du die Performance im Auge behalten. Das Vermeiden von vielen For-Next-Schleifen kann die Verarbeitungsgeschwindigkeit erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich zwei Arrays ohne Datenverlust zusammenfügen?
Verwende ReDim Preserve, um sicherzustellen, dass bestehende Daten beim Anpassen der Array-Dimensionen erhalten bleiben.

2. Was sind mehrdimensionale Arrays in VBA?
Mehrdimensionale Arrays sind Arrays, die mehr als eine Dimension haben. Sie sind nützlich, um komplexe Datenstrukturen in VBA zu speichern.

3. Kann ich Excel-Zellen in ein mehrdimensionales Array importieren?
Ja, du kannst Werte aus Excel-Zellen in ein mehrdimensionales Array importieren, indem du eine Schleife verwendest, um die Zellwerte zu durchlaufen und sie dem Array zuzuweisen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige