View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Bob Kilmer Bob Kilmer is offline
external usenet poster
 
Posts: 280
Default Opening many files sequentially

Robin,
BTW, you don't have to collect the file names into a collection. I just
included that as an example in case you want to keep a reference to the
files around in code. I used a collection because, unlike an array, it does
not require that I know ahead of time how many files there will be to size
it and it avoids repeatedly resizing an array to accomodate additional file
names.

Bob Kilmer

"Bob Kilmer" wrote in message
...
Example:
Option Explicit

Sub Main()
Dim c As Collection
Set c = New Collection

Dim f As String
f = Dir("X:\ACertainFolder\*.ali")
Do While Len(f) 0
c.Add f
f = Dir()
Loop

Dim v As Variant
For Each v In c
Debug.Print CStr(v)
Next v
Set c = Nothing
End Sub


Also, in DOS, the Dir switch /b (as in "bare") is good for listing files
for batch applications. It omits the time, date, size, etc. and just lists
the files and paths.

Dir *.ali /b

Dir *.ali /b/s (to include subdirectories)

"Robin Clay" wrote in message
...
Greetings !

In a certain Folder I have a dozen text files all ending
with .ali. These files all have an identical format, but
different values.

I occassionally need to change one particular field in all
the files.

How do I perform the "FOR" loop to address each file in
turn ?

What I did as a stop-gap was to open a DOS window in that
folder, enter

DIR *.ali Junk

and then cut and paste the names from "Junk" into the
module code, each on a separate line.

I then put

myFile(x) = "

before each, and then changed the x to consecutive
numbers.

Then I put

For N = 1 to 12
ThisFile = myFile(N)
etc....

Tedious, I know, but it worked.

But "there must be a better way" .... ?