Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
230 views
in Technique[技术] by (71.8m points)

excel - Error while reading CSV with VBA

I'm trying to read a CSV with VBA. When following this tutorial, I get the following code:

Sub OpenTextFile()

Dim FilePath As String
FilePath = "C:path	ofilemycsv.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

This is my CSV:

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

When executing the code, I get an error:

Index out of range

And this line is marked yellow:

ActiveCell.Offset(row_number, 0).Value = LineItems(2)
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You have a typo:

LineItems = Split(LineFromLine, ",")

should be

LineItems = Split(LineFromFile, ",")

This would not have happened if you used Option Explicit at the beginning of your module ;)


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...