Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ubound von Mehrdimensionalen/Geschachtelten Array

Forumthread: Ubound von Mehrdimensionalen/Geschachtelten Array

Ubound von Mehrdimensionalen/Geschachtelten Array
17.10.2013 15:42:02
Mehrdimensionalen/Geschachtelten
Hallo Ihr!
Ich möchte die länge eines Arrays mit Ubound bestimmen. Das Array besteht aus mehreren 2-Dimensionalen Arrays. Also Arr(z)= Inhalt(x,y).
z: Anzahl der 2-Dim-Arrays
x: "Zeilen"
y: "Spalten"
Ich hätte gern die die größe von x gewusst. Bekomme das mit Ubound nicht hin!
Habt Ihr ne Idee?
Gruß
Kapitän

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Ubound von Mehrdimensionalen/Geschachtelten Array
17.10.2013 15:45:03
Mehrdimensionalen/Geschachtelten
UBound mehrtstufiges Array
UBound(arrWerte(), 2)

AW: Ubound von Mehrdimensionalen/Geschachtelten Array
17.10.2013 16:05:47
Mehrdimensionalen/Geschachtelten
Hallo,
z.B. =Ubound(arr(1))
Sub xxx()
Dim arr(2), _
arrX(1 To 10, 1 To 2), _
arrY(1 To 20, 1 To 2), _
arrZ(1 To 50, 1 To 2)
Dim i
arr(0) = arrX
arr(1) = arrY
arr(2) = arrZ
For i = 0 To 2
MsgBox UBound(arr(i))
Next
End Sub
Gruß
Rudi
Anzeige
;
Anzeige

Infobox / Tutorial

Ubound von Mehrdimensionalen Arrays in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Deklaration des Arrays: Beginne mit der Deklaration deines mehrdimensionalen Arrays. Zum Beispiel:

    Dim arr(2), arrX(1 To 10, 1 To 2), arrY(1 To 20, 1 To 2), arrZ(1 To 50, 1 To 2)
  2. Zuweisung der Arrays: Weise die einzelnen 2-dimensionalen Arrays zu:

    arr(0) = arrX
    arr(1) = arrY
    arr(2) = arrZ
  3. Bestimmung der Größe mit UBound: Verwende den Befehl UBound, um die Größe der Arrays zu ermitteln:

    Dim i
    For i = 0 To 2
       MsgBox UBound(arr(i))
    Next
  4. Ausführen des Codes: Führe das Makro aus, um die maximale Indizes der 2-dimensionalen Arrays zu sehen.


Häufige Fehler und Lösungen

  • Fehler: "Subscript out of range": Dies passiert, wenn du versuchst, auf ein Element außerhalb der Grenzen des Arrays zuzugreifen. Stelle sicher, dass du die richtigen Indizes verwendest.

  • Lösung: Überprüfe die Indizes und stelle sicher, dass du mit UBound die richtige Dimension abfragst, z.B. UBound(arr, 1) für die erste Dimension.


Alternative Methoden

Eine alternative Methode zur Ermittlung der Größe eines Arrays ist die Verwendung von LBound und UBound zusammen. So kannst du die Länge eines Arrays abfragen:

Dim arrayLength As Long
arrayLength = UBound(arr) - LBound(arr) + 1
MsgBox "Die Länge des Arrays ist: " & arrayLength

Praktische Beispiele

Hier sind einige praktische Beispiele zur Verwendung von UBound mit mehrdimensionalen Arrays:

Sub ArrayBeispiel()
    Dim myArray(1 To 3, 1 To 5)

    ' Fülle das Array mit Werten
    Dim i As Long, j As Long
    For i = 1 To 3
        For j = 1 To 5
            myArray(i, j) = i * j
        Next j
    Next i

    ' Ausgabe der Größe
    MsgBox "Zeilen: " & UBound(myArray, 1) & ", Spalten: " & UBound(myArray, 2)
End Sub

Tipps für Profis

  • Nutze Debug.Print anstelle von MsgBox, um mehrere Werte ohne Unterbrechung im Direktfenster anzuzeigen.
  • Halte deinen Code sauber, indem du klar benennte Variablen verwendest, die die Dimensionen deines Arrays reflektieren.
  • Bei der Arbeit mit großen Arrays kann die Performance durch das Minimieren von MsgBox-Aufrufen verbessert werden.

FAQ: Häufige Fragen

1. Wie kann ich die Anzahl der Zeilen und Spalten eines mehrdimensionalen Arrays ermitteln?
Du kannst die Funktion UBound für jede Dimension verwenden. Zum Beispiel:

Dim zeilen As Long
Dim spalten As Long

zeilen = UBound(myArray, 1)
spalten = UBound(myArray, 2)

2. Was ist der Unterschied zwischen LBound und UBound?
LBound gibt den kleinsten Index eines Arrays zurück, während UBound den größten Index zurückgibt. Das ist nützlich, um die Größe des Arrays zu ermitteln.

3. Kann ich mit UBound auch die Dimensionen von geschachtelten Arrays abfragen?
Ja, du kannst UBound für jede Dimension eines geschachtelten Arrays verwenden, indem du die entsprechende Dimension angibst, z.B. UBound(arr, 2) für die zweite Dimension.

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