Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1620to1624
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

CSV Datei in zweidimensionales Array einlesen

CSV Datei in zweidimensionales Array einlesen
19.04.2018 09:40:54
Wilfried
Hallo,
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?

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CSV Datei in zweidimensionales Array einlesen
19.04.2018 09:47:53
Rudi
Hallo,
letztlich auf zwei Dimensionen "aufgeblasen" wird.
Nein!
Es bleibt ein eindimensionales Array, das wiederum eindimensionale Arrays (0 to 1) enthält.
msgbox MapArray(1)(0)
msgbox MapArray(1)(1)
Gruß
Rudi
AW: CSV Datei in zweidimensionales Array einlesen
19.04.2018 10:23:40
Robert
Hallo Wilfried,
hast Du den Import mal auf eine andere Art probiert:
Sub ReadCsvFile()
Dim wbCSV As Workbook
Dim MapArray As Variant
Dim DUMMYVALUE as String
Application.ScreenUpdating = False
Set wbCSV = Workbooks.Open(Filename:="D:\Data\MyFile.csv")
With wbCSV
MapArray = .Sheets(1).UsedRange.Value
.Close
End With
Application.ScreenUpdating = True
DUMMYVALUE = MapArray(1, 1)
End Sub

Gruß
Robert
Anzeige
AW: CSV Datei in zweidimensionales Array einlesen
19.04.2018 13:11:18
Wilfried
@Robert:
Hatte ich noch nicht probiert. Aber mein Code soll letztlich unabhängig von Excel als VB-Code laufen (es sind ja nur Textdateien im Spiel), deshalb fallen mir "Workbook" und "Sheet" gleich unangenehm auf.
AW: CSV Datei in zweidimensionales Array einlesen
19.04.2018 13:07:23
Wilfried
Ups - schon wieder was gelernt.
Funktioniert prächtig. Besten Dank!
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige