Es ist sicher ein ganz dummer Fehler, aber das hilft mir ja nicht.
Ich möchte die Werte einer Tabellenspalte in ein Datenfeld einlesen und von dort auslesen. Das klappt auch gut.
Wenn ich aber nach der Schleife das Datenfeld über den Index wieder auslesen möchte z.B. über die Anweisung MsgBox S(4), dann bekomme ist immer 0 als angeblichen Inhalt. In der Schleife klappt das mit
'MsgBox ("Inhalt Index " & og & " ist " & S(og)) einwandfrei.
Vielen Dank, Martin.
Hier also der Quellcode:
Sub einlesen_test()
Dim blatt As Object
Dim S() As Double 'Liste für Summen
Dim x As Integer 'Zählvariable
Dim og As Integer 'höchster Index der Liste
Set blatt = ThisWorkbook.Sheets(„Monatliche Ausgaben“)
x = 3 'ab Zeile 2 beginnt Zelldurchlauf
og = 0
Do
If blatt.Cells(x, 2).Value = Empty Then
Exit Do
End If
'MsgBox (blatt.Cells(x, 2).Value & " in Array einlesen")
du hast eine REDIM-Anweisung in der Do-Loop-Schleife.
Wenn du Redim S(1) schreibst, wird mit jedem Lauf in der Schleife, das Array auf 1 zurückgesetzt und der Inhalt gelöscht.
Schreib das Redim vor dem Do und dann müsste es klappen.
greetz
Mario
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]