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

Größe eines Arrays ermitteln

Forumthread: Größe eines Arrays ermitteln

Größe eines Arrays ermitteln
08.07.2003 15:02:09
Ruben
Hi,
kann ich irgendwie die Anzahl der Elemente eines Arrays ermitten ohne die "For Each" Schleife zu verwenden (z.B. bei eigenen Datentypen) ?
Ciao
Ruben
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ubound(varArr)
08.07.2003 15:06:35
Nike
Hi,
bei nem eindimensionalen Array kannst du ubound(array) nehmen
Bye
Nike

AW: ubound(varArr)
08.07.2003 15:18:56
Ruben
Ah stimmt, das hatte ich schon abgeschrieben, nachdem ich mehrdimensionale Arrays benutzt habe, jetzt verwende ich statt dessen aber eigenen Datentyp.
Eine Methode für Mehrdimensionale Arrays MIT eigenem Datentyp gibts aber nicht, oder? ;-)
Bestimmung einer Dimension würde ja reichen
Ciao
Ruben

Anzeige
Habs
08.07.2003 15:21:28
Ruben
UBound(Array, Dimension) kann das... :)

AW: Das würd mich auch interessieren ;-)
08.07.2003 15:29:08
Nike
Hi,
könntest du mal ein Beispiel für einen eigenen (mehrdimensionalen) Datentyp
geben? Wie man ihn aufbaut usw...
Wäre nett.
Bye
Nike

Klar
08.07.2003 16:41:26
Ruben
Ich weiß nicht ob ich jetzt das schreibe was du meinst, aber ich meinte das so:
Das Array ist in diesem Fall Eindimensional, geht aber natürlich auch mehrdimensional...
Public Type Auto
PS As Integer
Marke As String
End Type

Sub AutoAuswahl()
Dim AutoArray(10) As Auto
AutoArray(0).PS = 100
AutoArray(0).Marke = "Skoda"
AutoArray(1).PS = 150
AutoArray(1).Marke = "Mitsubishi"
AutoArray(2).PS = 218
AutoArray(2).Marke = "Subaru"
End Sub


Anzeige
AW: Danke
08.07.2003 16:46:00
Nike
Hi,
danke Dir.
Bye
Nike

;
Anzeige

Infobox / Tutorial

Größe eines Arrays ermitteln in Excel VBA


Schritt-für-Schritt-Anleitung

Um die Größe eines Arrays in Excel VBA zu ermitteln, kannst du die Funktion UBound verwenden. Diese Funktion gibt den höchsten Index eines Arrays zurück. Hier sind die Schritte:

  1. Ein eindimensionales Array erstellen:

    Dim myArray(5) As Integer
  2. Werte in das Array einfügen:

    myArray(0) = 1
    myArray(1) = 2
    myArray(2) = 3
    myArray(3) = 4
    myArray(4) = 5
  3. Die Größe des Arrays ermitteln:

    Dim arraySize As Integer
    arraySize = UBound(myArray) + 1  ' +1, da UBound den höchsten Index zurückgibt
    MsgBox "Die Größe des Arrays ist: " & arraySize

Für mehrdimensionale Arrays musst du die Dimension angeben:

Dim myMultiArray(1 To 3, 1 To 2) As Integer
Dim dimensionSize As Integer
dimensionSize = UBound(myMultiArray, 1)  ' Gibt die Größe der ersten Dimension zurück
MsgBox "Die Größe der ersten Dimension ist: " & dimensionSize

Häufige Fehler und Lösungen

  • Fehler: "Subscript out of range"

    • Lösung: Stelle sicher, dass du den richtigen Index verwendest und dass das Array initialisiert ist.
  • Fehler: UBound gibt einen unerwarteten Wert zurück

    • Lösung: Überprüfe, ob das Array korrekt dimensioniert und initialisiert wurde.

Alternative Methoden

Eine weitere Methode zur Ermittlung der Größe eines Arrays ist die Verwendung der Array-Funktion in Kombination mit UBound. Du kannst auch die Anzahl der Elemente mit der Funktion Count in einer Collection ermitteln.

Beispiel:

Dim myArray() As Variant
myArray = Array(1, 2, 3, 4, 5)
Dim elementCount As Integer
elementCount = UBound(myArray) - LBound(myArray) + 1
MsgBox "Die Anzahl der Elemente im Array ist: " & elementCount

Praktische Beispiele

Hier ist ein praktisches Beispiel, das zeigt, wie man die Anzahl der Elemente in einem mehrdimensionalen Array ermitteln kann:

Public Type Auto
    PS As Integer
    Marke As String
End Type

Sub AutoBeispiel()
    Dim AutoArray(1 To 3) As Auto
    AutoArray(1).PS = 100
    AutoArray(1).Marke = "Skoda"
    AutoArray(2).PS = 150
    AutoArray(2).Marke = "Mitsubishi"
    AutoArray(3).PS = 218
    AutoArray(3).Marke = "Subaru"

    Dim anzahlElemente As Integer
    anzahlElemente = UBound(AutoArray) ' Gibt 3 zurück
    MsgBox "Die Anzahl der Autos im Array ist: " & anzahlElemente
End Sub

Tipps für Profis

  • Nutze die LBound-Funktion, um den niedrigsten Index eines Arrays zu ermitteln. Dies ist besonders nützlich, wenn du mit Arrays arbeitest, die nicht bei 0 beginnen.

  • Achte darauf, dass die Dimensionen deines Arrays korrekt sind, um Fehler zu vermeiden.

  • Verwende Typen wie Variant, um flexiblere Arrays zu erstellen, die unterschiedliche Datentypen speichern können.


FAQ: Häufige Fragen

1. Wie kann ich die Länge eines Arrays in VBA ermitteln? Du kannst die UBound-Funktion verwenden, um die maximale Größe eines Arrays zu ermitteln. Füge dazu 1 hinzu, um die Anzahl der Elemente zu erhalten.

2. Gibt es eine Möglichkeit, die maximale Größe eines Arrays zu ermitteln? Die maximale Größe eines Arrays in VBA hängt von der Version ab. In der Regel ist die maximale Dimension 60 und die maximale Größe 2 GB, aber dies kann variieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige