Trying to NOT import some records in a large text file

  • Thread starter Francois via OfficeKB.com
  • Start date
F

Francois via OfficeKB.com

Hi All,

I'm importing a large text file into Excel.(I have no control of the format
at source).

I'm trying to NOT import any records that start with AAJ and accept all
others, but I can't get the code to do what I'm trying to tell it.


Do until EOF(FNum)

Line Input #FNum,Inputline

'These are the lines that I want to NOT import
If Left(InputLine(,3)="AAJ" Then (How do I tell it to miss this record and
get the next one?)




loads more code here



Loop

Thanks in advance for any help
 
I

incre-d

Do Until EOF(fNum)

If (Left(inputline, 3) = "AAJ") Then GoTo ContinueFromEnd

lots of code


ContinueFromEnd
Loop
 
D

Dave Peterson

I would just use the else branch:

Do until EOF(FNum)

Line Input #FNum,Inputline
If ucase(Left(InputLine,3)) ="AAJ" Then
'do nothing
else
'your code to import that line here
end if

loop
 
F

Francois via OfficeKB.com

Hi incre-d,

Thanks for the quick reply, I tried this (I took out the GOTO bit, but it
still imported the AAJ line.

I assume the ContinueFromEnd is an empty sub routine.

Any Idea where I might be going wrong Thanks again

incre-d said:
Do Until EOF(fNum)

If (Left(inputline, 3) = "AAJ") Then GoTo ContinueFromEnd

lots of code

ContinueFromEnd
Loop
[quoted text clipped - 17 lines]
Thanks in advance for any help
 
F

Francois via OfficeKB.com

Dave said:
I would just use the else branch:

Do until EOF(FNum)

Line Input #FNum,Inputline
If ucase(Left(InputLine,3)) ="AAJ" Then
'do nothing
else
'your code to import that line here
end if

loop

I must be doing something wrong.
Here's a section of the code I'm using ( It's from that nice Chip Pearson)


''''''''''''''''''''''''''''''''''''''''''''''
' Loop until we hit the end of the file.
''''''''''''''''''''''''''''''''''''''''''''''
On Error GoTo 0
Do Until EOF(FNum)
''''''''''''''''''''''''''''''''''''''''''''''
' Get the next line of data from the file
''''''''''''''''''''''''''''''''''''''''''''''
Line Input #FNum, InputLine

If UCase(Left(InputLine, 3)) = "AAJ" Then



Else
End If

''''''''''''''''''''''''''''''''''''''''''
' Increment counters.
''''''''''''''''''''''''''''''''''''''''''
InputCounter = InputCounter + 1
RowsThisSheet = RowsThisSheet + 1


But it still imports the records that I don't want
[quoted text clipped - 21 lines]
 
D

Dave Peterson

Do Until EOF(FNum)
''''''''''''''''''''''''''''''''''''''''''''''
' Get the next line of data from the file
''''''''''''''''''''''''''''''''''''''''''''''
Line Input #FNum, InputLine

If UCase(Left(InputLine, 3)) = "AAJ" Then
'do nothing
Else
''''''''''''''''''''''''''''''''''''''''''
' Increment counters.
''''''''''''''''''''''''''''''''''''''''''
InputCounter = InputCounter + 1
RowsThisSheet = RowsThisSheet + 1
'more code that does the real work
End If
loop


Francois via OfficeKB.com said:
Dave said:
I would just use the else branch:

Do until EOF(FNum)

Line Input #FNum,Inputline
If ucase(Left(InputLine,3)) ="AAJ" Then
'do nothing
else
'your code to import that line here
end if

loop

I must be doing something wrong.
Here's a section of the code I'm using ( It's from that nice Chip Pearson)

''''''''''''''''''''''''''''''''''''''''''''''
' Loop until we hit the end of the file.
''''''''''''''''''''''''''''''''''''''''''''''
On Error GoTo 0
Do Until EOF(FNum)
''''''''''''''''''''''''''''''''''''''''''''''
' Get the next line of data from the file
''''''''''''''''''''''''''''''''''''''''''''''
Line Input #FNum, InputLine

If UCase(Left(InputLine, 3)) = "AAJ" Then



Else
End If

''''''''''''''''''''''''''''''''''''''''''
' Increment counters.
''''''''''''''''''''''''''''''''''''''''''
InputCounter = InputCounter + 1
RowsThisSheet = RowsThisSheet + 1

But it still imports the records that I don't want
[quoted text clipped - 21 lines]
 
D

Dave Peterson

It's not a subroutine--it's a label that's used for branching.

Do Until EOF(fNum)

If (Left(inputline, 3) = "AAJ") Then GoTo ContinueFromEnd:

''''''''''''''''''''''''''''''''''''''''''
' Increment counters.
''''''''''''''''''''''''''''''''''''''''''
InputCounter = InputCounter + 1
RowsThisSheet = RowsThisSheet + 1
'more code that does real stuff

ContinueFromEnd:
Loop


=======
I like the if/then/else structure better.

Francois via OfficeKB.com said:
Hi incre-d,

Thanks for the quick reply, I tried this (I took out the GOTO bit, but it
still imported the AAJ line.

I assume the ContinueFromEnd is an empty sub routine.

Any Idea where I might be going wrong Thanks again

incre-d said:
Do Until EOF(fNum)

If (Left(inputline, 3) = "AAJ") Then GoTo ContinueFromEnd

lots of code

ContinueFromEnd
Loop
[quoted text clipped - 17 lines]
Thanks in advance for any help
 
F

Francois via OfficeKB.com

Success, Thanks Dave.




Dave said:
Do Until EOF(FNum)
''''''''''''''''''''''''''''''''''''''''''''''
' Get the next line of data from the file
''''''''''''''''''''''''''''''''''''''''''''''
Line Input #FNum, InputLine

If UCase(Left(InputLine, 3)) = "AAJ" Then
'do nothing
Else
''''''''''''''''''''''''''''''''''''''''''
' Increment counters.
''''''''''''''''''''''''''''''''''''''''''
InputCounter = InputCounter + 1
RowsThisSheet = RowsThisSheet + 1
'more code that does the real work
End If
loop

[quoted text clipped - 41 lines]
 

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