Tocogroup
asked on
Why does my Excel VBA file system object procedure return a 'rogue' file.
Hi All,
I have an Excel VBA procedure which checks a folder to see if there is any file residing there. If there is then it copies the file to a destination folder.
However, because the file check is in a For Next loop, and even though I only have one file in the folder, it processes an 'invisible' file before exiting the loop. I know this because when I put it in Debug and test the values it shows the second time around the loop that the 'filename' is "Thumbs.db". God knows where this file has come from because it doesn't display in Windows Explorer.
Consequently it is affecting my processing because my filename variable changes to this value.
Any clue as to what this might be ? How can I test the folder without having to loop, as I'll only ever have either no files in the folder or only one file in the folder.
My code is enclosed...
I have an Excel VBA procedure which checks a folder to see if there is any file residing there. If there is then it copies the file to a destination folder.
However, because the file check is in a For Next loop, and even though I only have one file in the folder, it processes an 'invisible' file before exiting the loop. I know this because when I put it in Debug and test the values it shows the second time around the loop that the 'filename' is "Thumbs.db". God knows where this file has come from because it doesn't display in Windows Explorer.
Consequently it is affecting my processing because my filename variable changes to this value.
Any clue as to what this might be ? How can I test the folder without having to loop, as I'll only ever have either no files in the folder or only one file in the folder.
My code is enclosed...
' Check if a file has been moved into the Input folder
Set fs = CreateObject("Scripting.FileSystemObject")
strSourceFolder = "C:\Users\Toco\Status Report\Data\Input"
strDestinationFolder = "C:\Users\Toco\Status Report\Data\Archive"
Set r = fs.GetFolder(strSourceFolder)
For Each f In r.Files
fs.CopyFile strSourceFolder & "\" & f.Name, strDestinationFolder & "\" & f.Name
strFileName = f.Name
Next
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Have you tried FileCopy (instead of CopyFile)?
How about an ON ERROR RESUME NEXT command as well?
If you want to check for hidden files, then you can always catalogue the folder first, using something like the programme in www.filecats.co.uk - that shows hidden files (as well as system files etc).
How about an ON ERROR RESUME NEXT command as well?
If you want to check for hidden files, then you can always catalogue the folder first, using something like the programme in www.filecats.co.uk - that shows hidden files (as well as system files etc).
ASKER
I've requested that this question be closed as follows:
Accepted answer: 0 points for Tocogroup's comment #a40325194
for the following reason:
Thanks for your assistance. You've been more than helpful.
Toco
Accepted answer: 0 points for Tocogroup's comment #a40325194
for the following reason:
Thanks for your assistance. You've been more than helpful.
Toco
I have solved the problem.
ASKER
Ah ok
ASKER
I've requested that this question be closed as follows:
Accepted answer: 0 points for Tocogroup's comment #a40325194
for the following reason:
Much obliged
Accepted answer: 0 points for Tocogroup's comment #a40325194
for the following reason:
Much obliged
Please award the points.
ASKER
But I've awarded the points...twice
ASKER
I've requested that this question be closed as follows:
Accepted answer: 0 points for Tocogroup's comment #a40325194
for the following reason:
I've now awarded three lots of 500 points. I think there's a problem with the system !
Accepted answer: 0 points for Tocogroup's comment #a40325194
for the following reason:
I've now awarded three lots of 500 points. I think there's a problem with the system !
:-)
ASKER
Well yes.....that's what I'm doing. I have been using EE for many years now so I do know how to award points.
I've attached a screenshot of when I accept Philip's solution. I then select the A radio button and then the Submit button.
?? Strange
Capture.PNG
I've attached a screenshot of when I accept Philip's solution. I then select the A radio button and then the Submit button.
?? Strange
Capture.PNG
ASKER
I'm not selecting my own comments !
ASKER
Hah...nice one !
Just a thought though....I'm running this in Internet Explorer 8 and it renders awfully. Unfortunately my employees are not so sympathetic and won't allow me to download the latest version of IE or, even better, Firefox.
Will be interesting to see if this reoccurs.
Regards
Toco
Just a thought though....I'm running this in Internet Explorer 8 and it renders awfully. Unfortunately my employees are not so sympathetic and won't allow me to download the latest version of IE or, even better, Firefox.
Will be interesting to see if this reoccurs.
Regards
Toco
ASKER
Thanks, but like Nectar points I'm not sure I'd know what to do with them. :-)
ASKER
Returning to my loop, I have a number of issues with it as it doesn't seem to allow me to assign the file to a variable which I can then use to open/copy/save as/delete the file in subsequent processing.
Everytime i try to assign it as per the code below I get a 'Run-time error 9 Subscript out of range', which from my experience has nothing to do with arrays.
Open in new window
I'm sure there must be a simpler way of managing files than using FileSystemObject ??