1つのディレクトリ内のファイルをループしていますが、すべて正常に動作しますが、ファイルをモジュール内の別の関数に渡すと奇妙になります。ループ内で最初に読み込まれたファイルをスキップします。 たとえば、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モジュールの引数が突然1つ増えます。原則として、copyFileは他のモジュールでもよく、コピーアクションを実行することさえできません。 –
ここからコードを試してみることができます:http://stackoverflow.com/questions/10380312/loop-through-files-in-a-folder-using-vba – Vityata