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: VBA - Länge der Inhalte eines Array ermitteln

VBA - Länge der Inhalte eines Array ermitteln
10.05.2018 14:27:49
Christian
Hallo zusammen,
ich stehe vor einem mir, momentan, unlösbaren Problem. Google hat mir bisher auch nicht weiterhelfen können.
Ich habe eine Userform mit einer TextBox, in der Eingaben gemacht werden (Barcodes scannen). Nun werden die einzelnen Eingaben per Split-Funktion getrennt und in einer Spalte C eines Worksheets ausgegeben.
Jetzt soll aber noch ein anderer Barcode hinzukommen, der weniger Zeichen enthält und in eine andere Spalte eingetragen werden soll.
Der eine hat 13, der andere 11 Zeichen.
Mein Problem ist nun, dass ich die Zeichenlänge der einzelnen Array-Zeilen auslesen muss und das über meine Kenntnisse hinausgeht.
Ich wäre daher über jede Hilfe erfreut.
Der momentane Code - ohne Unterteilung - sieht folgendermaßen aus:

If Trim$(EAN) "" Then
vntSplit = Split(EAN, vbCrLf)
For i = 0 To UBound(vntSplit)
Cells(emptyRow, 3).Offset(i, 0) = "'" & Trim$(vntSplit(i))
Next i
End If

Danke
Christian
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Länge der Inhalte eines Array ermitteln
10.05.2018 14:35:07
Werner
Hallo Christian,
sollte das nicht nach diesem Muster gehen?
If Len(Trim$(vntSplit(i))) = 11 Then
If Len(Trim$(vntSplit(i))) = 13 Then
Bin jetzt aber nicht gerade der Array-Kenner (um es mal höflich auszudrücken)
Gruß Werner
AW: Teste mal mit ...
10.05.2018 14:35:44
Anonymous

If Trim$(EAN)  "" Then
vntSplit = Split(EAN, vbCrLf)
For i = 0 To UBound(vntSplit)
if len(vntSplit(i)) = 13 then
Cells(emptyRow, 3).Offset(i, 0) = "'" & Trim$(vntSplit(i))
else
Cells(emptyRow, 4).Offset(i, 0) = "'" & Trim$(vntSplit(i))
end if
Next i
End If

Anzeige
AW: VBA - Länge der Inhalte eines Array ermitteln
10.05.2018 15:03:13
Christian
Hallo,
der Hinweis von Anonymous ist es gewesen.
Vielen Dank für die schnelle Hilfe!
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Länge der Inhalte eines VBA-Arrays ermitteln


Schritt-für-Schritt-Anleitung

Um die Länge der Inhalte eines Arrays in VBA zu ermitteln, kannst Du folgenden Schritten folgen:

  1. TextBox für Barcode scannen: Stelle sicher, dass Du eine Userform mit einer TextBox hast, in der Du die Barcodes scannen kannst.

  2. Array erstellen und Split-Funktion nutzen: Verwende die Split-Funktion, um die Eingaben zu trennen. Hier ein Beispielcode:

    If Trim$(EAN) <> "" Then
       vntSplit = Split(EAN, vbCrLf)
       For i = 0 To UBound(vntSplit)
           Cells(emptyRow, 3).Offset(i, 0) = "'" & Trim$(vntSplit(i))
       Next i
    End If
  3. Länge der Elemente im Array abfragen: Um die Länge der einzelnen Elemente im Array zu ermitteln, kannst Du die Len-Funktion verwenden:

    For i = 0 To UBound(vntSplit)
       If Len(Trim$(vntSplit(i))) = 11 Then
           Cells(emptyRow, 3).Offset(i, 0) = "'" & Trim$(vntSplit(i))
       ElseIf Len(Trim$(vntSplit(i))) = 13 Then
           Cells(emptyRow, 4).Offset(i, 0) = "'" & Trim$(vntSplit(i))
       End If
    Next i

Häufige Fehler und Lösungen

  • Fehler: UBound ist -1: Wenn Du den Fehler "vba ubound -1" erhältst, bedeutet das, dass das Array leer ist. Überprüfe vor dem Zugriff auf das Array, ob es Elemente enthält.

  • Problem mit der Länge: Achte darauf, dass Du die Len-Funktion korrekt anwendest. Wenn die Länge nicht wie erwartet zurückgegeben wird, kann es an Leerzeichen oder nicht sichtbaren Zeichen liegen. Nutze Trim$, um sicherzustellen, dass nur die tatsächlichen Zeichen gezählt werden.


Alternative Methoden

Wenn Du die Größe eines Arrays in VBA abfragen möchtest, kannst Du auch die Array-Funktion nutzen. Hier ein Beispiel:

Dim myArray As Variant
myArray = Array("Element1", "Element2", "Element3")
Debug.Print UBound(myArray) + 1  ' Gibt die Anzahl der Elemente im Array zurück

Diese Methode ist nützlich, wenn Du die Anzahl der Elemente im Array benötigst, anstatt die Länge jedes einzelnen Strings.


Praktische Beispiele

Hier sind einige Beispiele, die Dir helfen können, die Länge eines Strings in einem Array zu ermitteln:

Dim vntSplit As Variant
Dim EAN As String
Dim i As Integer

EAN = "1234567890123" & vbCrLf & "12345678901"
vntSplit = Split(EAN, vbCrLf)

For i = 0 To UBound(vntSplit)
    Debug.Print "Länge von vntSplit(" & i & "): " & Len(Trim$(vntSplit(i)))
Next i

In diesem Beispiel wird die Länge jedes Barcodes im Array ausgegeben, wodurch Du leicht überprüfen kannst, ob sie den Anforderungen entsprechen.


Tipps für Profis

  • Zugriff auf Array-Elemente optimieren: Wenn Du häufig auf Array-Elemente zugreifst, speichere die Länge des Arrays in einer Variablen, um wiederholte Aufrufe von UBound zu vermeiden.

  • Fehlerbehandlung einfügen: Füge eine Fehlerbehandlung in Deinen Code ein, um unerwartete Probleme frühzeitig zu erkennen. Verwende On Error Resume Next, um Fehler zu ignorieren, und überprüfe anschließend den Fehlerstatus.


FAQ: Häufige Fragen

1. Wie kann ich die Größe eines Arrays in VBA ermitteln?
Du kannst die UBound-Funktion verwenden, um die maximale Indexnummer des Arrays zu erhalten. Die Größe des Arrays ist UBound(array) + 1.

2. Wie kann ich sicherstellen, dass mein Array nicht leer ist?
Überprüfe die Länge des Arrays mit If UBound(array) >= 0 bevor Du darauf zugreifst. Dies stellt sicher, dass Du keine Fehler bekommst, wenn das Array leer ist.

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