Я перебираю файлы в одном каталоге, все работает отлично, но странно, когда я передаю файл другой функции в модуле. Он пропускает первый файл, полученный в цикле! Предположим, что первый цикл работает, например, file
- "File1"
, но как только он достигает copyFile (file)
, он передает "File2"
функции, которая также существует, по какой-либо причине она автоматически увеличивает цикл при вызове функции copyFile
.Прокрутка файлов в каталоге VBA
Dim file As Variant
file = Dir("PATH TO MY DIRECTORY")
Do While Len(file) > 0
Debug.Print file 'Here the right name is printed
file = Dir 'file here is also correct, at the beginning of the loop it shows File1
copyFile (file) 'Here suddenly the next file is sent to the copyFile
Loop
Я попытался определения строки, хранения file
в там, а затем передать его в copyFile(stringFile)
, но то же самое происходит.
Вы копируете файл в тот же каталог? – Barney
copyFile - это всего лишь модуль, я тоже делаю другие вещи. Дело в том, что аргумент для модуля copyFile неожиданно увеличивается на единицу. В принципе copyFile может быть любым другим модулем, даже не выполняющим действие копирования. –
Вы можете попробовать с кодом отсюда: http://stackoverflow.com/questions/10380312/loop-through-files-in-a-folder-using-vba – Vityata