2016-07-11 11 views
-1

Ich versuche, eine CSV mit VBA zu lesen. Wenn this tutorial folgenden, erhalte ich den folgenden Code:Fehler beim Lesen der CSV mit VBA

Sub OpenTextFile() 

Dim FilePath As String 
FilePath = "C:\path\to\file\mycsv.csv" 
Open FilePath For Input As #1 
row_number = 0 

Do Until EOF(1) 
    Line Input #1, LineFromFile 
    LineItems = Split(LineFromLine, ",") 

    ActiveCell.Offset(row_number, 0).Value = LineItems(2) 
    ActiveCell.Offset(row_number, 1).Value = LineItems(1) 
    ActiveCell.Offset(row_number, 2).Value = LineItems(0) 

    row_number = row_number + 1 
Loop 

Close #1 

End Sub 

Das ist mein CSV:

peter,paris,23 
mary,london,34 
steve,rome,56 
lily,madrid,65 

Wenn der Code ausgeführt wird, ich einen Fehler:

Index out of range

Und diese Linie markiert gelb:

ActiveCell.Offset(row_number, 0).Value = LineItems(2) 
+0

, welcher Bereich ist die 'ActiveCell' beziehen wann passiert dieser Fehler? –

+0

@MacroMan: Ich bin neu in VBA. Die einzige Information über den Fehler habe ich bereits zur Verfügung gestellt. Das ist die Fehlermeldung und die Fehlerzeile. – user1170330

+0

"Ich bin neu in VBA" ist nicht wirklich gut genug, kann man nicht googeln was "Range" und "ActiveCell" bedeuten? Wenn Sie sich nicht mit Ihrer Frage beschäftigen, werden sich die Leute nicht darum bemühen, sie zu beantworten. –

Antwort

3

Sie haben einen Tippfehler:

LineItems = Split(LineFromLine, ",") 

LineItems = Split(LineFromFile, ",") 

Dies wäre nicht geschehen, wenn Sie Option Explicit am Anfang des Moduls verwendet werden sollte;)

+1

Wenn das ist wirklich löst es dann das ist noch ein weiterer guter Fall zu ** immer ** 'Option Explicit' am Anfang von ** jedem ** Modul. – Ralph

+0

Das war wirklich ein Tippfehler. Vielen Dank. – user1170330