View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Jim Thomlinson[_3_] Jim Thomlinson[_3_] is offline
external usenet poster
 
Posts: 983
Default Newbie Q: Error handling procedures in a loop

Error handling should realy only be used to handle unaticipated events, such
as the lack of a network connection, or something that will only happen once
ina blue moon. If you can reasonaly expect something to happen then you shoud
write your code to anticipate that event. (Error handling actually has a lot
of overhead that will slow down your code). My recomendation for your
procedure would be to use the Dir function just ahead of the open.

if Dir(FileName & Path) = Filename then
'open the file and read from it... with your code
end if

HTH

"KR" wrote:

I've done a decent amount of low-level VBA coding, but I haven't done
anything at all with error handling (yet).

I have a loop that trys to open 5 different files from a target directory.
If the file is found, it will open the file and parse the data into arrays.

However, if the file is not found, I anticipate an error occuring when it
reaches:
Open MyLongFileName(n) For Input As #1
If it errors out, I want it to skip forward past the code that deals with
the file contents, and just start the next loop and try the next file.

My non-trained brain automatically assumes I have to set a boolean on
whether or not the file was found, using the error handler to set the value
completely separately ... but...

is there a way to set up the loop so that it all flows in-line? Basically to
just skip a bunch of code if an error occurs, within the loop. For example:

For EachFile = 1 to 5
On Error Go To NoFileFound 'for error handling
Open MyLongFileName(EachFile) For Input As #1
'do my stuff'
Close #1
NoFileFound: 'error handler
just continues to the next file loop
Next

Thanks for any advice/suggestions,
Keith
--
The enclosed questions or comments are entirely mine and don't represent the
thoughts, views, or policy of my employer. Any errors or omissions are my
own.