Microsoft Excel

Herbers Excel/VBA-Archiv

Array läuft über. Warum?

Betrifft: Array läuft über. Warum? von: Hendrik
Geschrieben am: 18.08.2014 14:41:00

Hallo zusammen,

folgende Funktion soll mir sagen, ob eine Spalte in einer Tabelle gefunden wurde:

Function spalteInTabelle(strSpalte As String) As Boolean
    Dim i As Long
    
    spalteInTabelle = False
    For i = 1 To UBound(strArrSpalten)
        Debug.Print LBound(strArrSpalten)
        Debug.Print UBound(strArrSpalten)
        If strArrSpalten(i, 0) = strSpalte Then
            spalteInTabelle = True
            Exit For
        End If
    Next i
End Function

Alle Spalten der Tabelle stehen im Array strArrSpalten. Die Debug-Ausgabe zeigt als LBound 1 _ und als UBound 78. Trotzdem bricht mir der Code an der Stelle
If strArrSpalten(i, 0) = strSpalte Then
(i=1) ab ("Indes außerhalb des gültigen Bereichs"). Ich kann mir das nicht erklären. Wer kann das? :)
Danke und Grüße
Hendrik

  

Betrifft: AW: Array läuft über. Warum? von: Hendrik
Geschrieben am: 18.08.2014 14:44:40

Arg, doof, wenn man doof ist.
strArrSpalten ist mit (1 to x, 1 to y) definiert, also gibt es strArrSpalten(i, 0) wahrlich nicht. Mit strArrSpalten(i, 1) klappts.
Sorry! :)


  

Betrifft: AW: Array läuft über. Warum? von: Daniel
Geschrieben am: 18.08.2014 14:47:24

Hi

als ersts musst du mal schauen, ob strArrSpalten eine ein- oder zweidimensionales Array ist.

sollt es ein zweidimensionales Array sein, und der LBound der ersten Dimension ist 1, dann ist es wahrscheinlich, dass der LBound der 2. Dimension ebenfalls 1 ist und nicht 0.

Gruß Daniel