Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: array - anzahl elemente

array - anzahl elemente
13.09.2005 17:58:31
Jürgen
Hallo Allerseits,
irgendwie habe ich ein kleines Problem...
Ich habe die Werte einer Tabelle in ein Array eingelesen.
An anderer Stelle möchte ich auf das Array zugreifen, bzw. brauche
für eine Schleife die Anzahl der Elemte des Array()
for i = 1 to Array(Zahl der Elemente an erster Stelle, 0)
for x = 1 to Array(0, Zahl der Elemente an zweiter Stelle)
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Such mal in der VBA Hilfe nach UBound o.w.t.
13.09.2005 17:59:45
Peter
MfG Peter
AW: Such mal in der VBA Hilfe nach UBound o.w.t.
13.09.2005 18:12:20
Jürgen
Hallo Peter,
Danke, das wars schon...hat funktioniert ;-)
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Anzahl der Elemente in einem VBA-Array Ermitteln


Schritt-für-Schritt-Anleitung

Um die Anzahl der Elemente in einem VBA-Array zu ermitteln, kannst du die Funktion UBound verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Array erstellen: Zuerst musst du ein Array in deinem VBA-Projekt erstellen. Zum Beispiel:

    Dim myArray(1 To 10) As Integer
  2. Werte zuweisen: Füge einige Werte zu deinem Array hinzu:

    For i = 1 To 10
       myArray(i) = i * 2
    Next i
  3. Anzahl der Elemente ermitteln: Du kannst die Anzahl der Elemente im Array mit UBound ermitteln:

    Dim anzahlElemente As Integer
    anzahlElemente = UBound(myArray) ' Gibt 10 zurück
  4. Verwendung in Schleifen: Nun kannst du die Anzahl der Elemente für Schleifen verwenden:

    For i = 1 To anzahlElemente
       Debug.Print myArray(i)
    Next i

Häufige Fehler und Lösungen

  • Fehler: "Subscript out of range"

    • Lösung: Stelle sicher, dass du die richtigen Indizes verwendest. Überprüfe die Grenzen des Arrays mit UBound.
  • Fehler: "Type mismatch"

    • Lösung: Achte darauf, dass du das Array korrekt deklariert hast und die Datentypen übereinstimmen.

Alternative Methoden

Neben der Verwendung von UBound gibt es auch andere Methoden, um die Größe eines Arrays in VBA zu ermitteln:

  • LBound und UBound: Mit diesen Funktionen kannst du die untere und obere Grenze eines Arrays herausfinden. Zum Beispiel:

    Dim untereGrenze As Integer
    Dim obereGrenze As Integer
    untereGrenze = LBound(myArray) ' Gibt 1 zurück
    obereGrenze = UBound(myArray)   ' Gibt 10 zurück
  • Dynamische Arrays: Bei dynamischen Arrays kannst du die ReDim-Anweisung verwenden, um die Größe zur Laufzeit zu ändern.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Verwendung von Arrays und zur Ermittlung der Anzahl der Elemente:

  1. Zufallszahlen in ein Array füllen:

    Dim randomArray() As Integer
    Dim i As Integer
    ReDim randomArray(1 To 10)
    
    For i = 1 To 10
       randomArray(i) = Int((100 * Rnd) + 1) ' Zufallszahl zwischen 1 und 100
    Next i
    
    Dim anzahlZufallszahlen As Integer
    anzahlZufallszahlen = UBound(randomArray)
  2. Ein Array mit Strings:

    Dim stringArray() As String
    ReDim stringArray(1 To 5)
    stringArray(1) = "Apfel"
    stringArray(2) = "Banane"
    stringArray(3) = "Orange"
    stringArray(4) = "Kiwi"
    stringArray(5) = "Mango"
    
    Dim anzahlStrings As Integer
    anzahlStrings = UBound(stringArray) ' Gibt 5 zurück

Tipps für Profis

  • Nutze die Funktion Option Base 1, um den Standardindex für Arrays auf 1 zu setzen, anstatt auf 0. Dies kann die Lesbarkeit deiner Schleifen verbessern.
  • Wenn du mit mehrdimensionalen Arrays arbeitest, denke daran, dass UBound nur die obere Grenze eines bestimmten Dimensions zurückgibt. Du musst UBound(array, dimension) verwenden, um die Größe der gewünschten Dimension zu ermitteln.

FAQ: Häufige Fragen

1. Wie kann ich die Länge eines Arrays in VBA ermitteln?
Du kannst die Funktion UBound verwenden, um die Größe des Arrays zu ermitteln. UBound(myArray) gibt die höchste Indexnummer zurück.

2. Was ist der Unterschied zwischen LBound und UBound?
LBound gibt den kleineren Index eines Arrays zurück, während UBound den größeren Index zurückgibt. Beide sind nützlich, um die Grenzen eines Arrays zu bestimmen.

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