Die CSV-Datei besteht aus vielen Zeilen, jede Zeile hat 2 Werte, durch Komma getrennt.
Das Einlesen klappt schon mal:
Sub ReadCsvFile()
Dim MapArray() As Variant
ReDim MapArray(1 To 1)
MyFile = "D:\Data\MyFile.csv"
Delim = ","
Set fso = CreateObject("Scripting.FileSystemObject")
Set Map = fso.OpenTextFile(MyFile)
Do Until Map.AtEndOfStream
x = x + 1
ReDim Preserve MapArray(1 To x)
wholeLine = Map.ReadLine
MapArray(x) = Split(wholeLine, ",")
Loop
DUMMYVALUE = MapArray(1, 1)
End Sub
Ich möchte die so eingelesenen Werte anschließend durchsuchen, d.h. "Spalte 1" einzeln lesend ansprechen. Das versuche ich in der letzten Codezeile und erhalte einen Run-time error 9: subscript out of range.Bei einzeiligen Arrays hat diese Methode immer funktioniert. Aber jetzt muss ich ein mehrzeiliges csv-File bearbeiten.
Ich sehe selbst, dass beim einlesen ein eindimensionales Array definiert, aber durch Split(...) letztlich auf zwei Dimensionen "aufgeblasen" wird. Das Ergebnis schaut im Watch-Fenster auch ok aus, dennoch geht der Lesezugriff nicht. Was mache ich falsch?