Array mit Split befüllt und nicht mehr auslesbar
01.02.2024 14:19:01
SebastianSchelb
ich habe ein Problem mit einem Array auslesen. Meine CSV-Datei besteht aus vielen Zeilen und der Delimiter ist ";".
Aus einer .csv-Datei lade ich per Split (Zeilenumbruch) Funktion jede Zeile in das erste Array.
1Array(0) = Zeile 1
1Array(1) = Zeile 2
....
Anschließend wird wieder mit der Split (Delimiter) Funktion das erste Array in ein zweites "2D" Array geladen.
2Array(0,1) = Zeile 1 Reihe 1
2Array(0,2) = Zeile 1 Reihe 2
....
Damit das funktioniert, muss ich beim zweiten Array die Größe mit Dimensionieren (arrData(100000))
Das Array wird auch richtig befüllt.
Jetzt kommt das Problem beim auslesen. Will ich das Array auslesen, kommt eine Fehlermeldung "Falsche Anzahl an Dimensionen".
z.B. debug.print 2Array(0,1)
Das macht ja auch Sinn, da ich auch nur eine Dimension zugewiesen haben und jetzt zwei abrufen möchte. Weise ich zwei Dimensionen zu, geht die Split Zuweisung nicht mehr.
Kann mir bitte jemand Helfen. Am liebsten würde ich auch gerne alle Zeilen und Spalten der CSV-Datei direkt in nur ein Array laden.
Hier ein Teil meines Codes:
Dim sarrInputRows
Dim arrData(100000)
arrInputRows = Split(Input(LOF(1), 1), vbCrLf)
lngArrDataMaxColumn = UBound(arrInputRows)
For i = 1 To lngArrDataMaxColumn
If StrCount(arrInputRows(i), ";") > lngArrDataMaxRow Then lngArrDataMaxRow = StrCount(arrInputRows(i), ";") ' genaues vergleichen
arrData(i - 1) = Split(arrInputRows(i), cstrDelim)
Next i
arrInputRows = arrInputRows + 1
'Array auf TB schreiben
For i = 0 To lngArrDataMaxColumn
For j = 0 To lngArrDataMaxRow
Sheets("FileSave").Cells(i + 1, j + 1) = arrData(i, j) 'GEHT NICHT
Next j
Next i
Grüße Sebastian