OK. Alls well that ends well. Even though I don't understand why doing the VBA Reset worked as I was doing it, it did work. And the macro speed would return back to it's original speed, although only temporarily. But after talking with you guys, I did have to admit that something was probably wrong with my code. So I started experimenting.
This particular macro is approx 700 lines. I started using "go to's" and by-passing sections while observing the speed, to see if I could detect a difference. Nothing made a difference until I commented out the two lines you will see below. It seems that I was deleting my Query Table each time I imported a new file (and then adding a new Table). It still worked but apparently slowed down with each use. I have no doubt you guys would have picked up on that quickly. But I'm just stubborn enough to want to figure it out myself (with a little help of course). After all, half the fun is in the chase.
I probably would have left the macro like it was, had it not been for you guys. So thanks to Norie, PA HS Teacher, and VogII for uour help. I feel that the macro is at its best now (it takes about 5-6 seconds to cycle thru 43 text files)
The following is a brief description of the macro (just for ref) - some of it is hand written (not copied directly from the code - so there could be a typo). I'm sending it as text - being unfamiliar with how to send it as code. Once I commented out the Query Table delete line, the macro executes as quickly the nth time as the first time.
' cycle file names on sheet Files
x = 3 ' start in Col B Row 3
Path = Sheets("Files").Range("A2") ' set the Path
While Sheets("Files").Range("B" & x) <> ""
FName = Sheets("Files").Range("B" & x)
PathName = Path & FName
' (commenting out these two lines did the trick)
' On Error Resume Next
' Selection.QueryTable.Delete
Range("A1:A100")="" ' erase the data sheet
Range("A1").select
' import my data
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & PathName, Destination:=Range("A1"))
.Name = "MyData"
etc...
etc...
' do some error checking
' select each line of the data file
Do While Activecell <> "EOF"
c = 1 ' init pointer c
' cycle each line from begin to end
' if keyword found, extract data
While Mid(Activecell, c, 1) <> ""
' if keyword found, extract data (and do some other things)
c = c + 1 ' adv the pointer
Wend
if (certain things found) Exit Do
Activecell.Offset(1, 0).Select ' select the next line
Loop
' other loops and things
x = x + 1 ' adv pointer to next file
Wend
Thanks again
JerryD