Using split function for a csv file with blank line in between

G

Guest

I used split to convert a csv file into a string array. Everything works
fine until I've a file with empty lines in between and when I run the split
function, my program will give an error "Script out of range" as long as it
hits the blank line. How can I overcome this? Is the empty line causing the
problem ? My script is as below

Open filename For Input As #1
x = 0
m = 1
z = a + b
w = 0
For n = 1 To w
Line Input #1, strline
arrstring = Split(strline, ",")
Worksheets("384-template").Range("B1").Offset(x + z, 0).Value =
arrstring(1){Debug stops here}
Worksheets("384-template").Range("C1").Offset(x + z, 0).Value =
arrstring(2)
Worksheets("384-template").Range("D1").Offset(x + z, 0).Value =
arrstring(0)
x = x + 48
m = m + 1
If m > 8 Then
m = 1
x = 0
z = z + 2
End If
'Debug.Print n, x, z, x + z, m
Next n
Close #1


Thanks!
 
C

Chip Pearson

Test your arrstring to see if it is a valid array before attempting to work
with its elements:

arrstring = Split(strline,",")
If LBound(arrstring) <= UBound(arrstring) Then
' do you thing
Else
' empty line read
End If

Note that this method won't work with arrays in general. It will work only
with arrays that are set properly by the Split and a few other functions.

--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting
www.cpearson.com
(email on the web site)
 
G

Guest

Thanks a lot! It worked perrfectly fine!

Chip Pearson said:
Test your arrstring to see if it is a valid array before attempting to work
with its elements:

arrstring = Split(strline,",")
If LBound(arrstring) <= UBound(arrstring) Then
' do you thing
Else
' empty line read
End If

Note that this method won't work with arrays in general. It will work only
with arrays that are set properly by the Split and a few other functions.

--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting
www.cpearson.com
(email on the web site)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top