我正在尝试将列表中的所有文件复制到旁边单元格中的另一个文件夹中。我需要这个循环遍历列中的所有条目。我从an old StackOverflow post.
修改了我正在使用的代码当我专门设置路径而不是变量但我不断获得
时,我可以让它工作类型不匹配错误
在循环(Set fils = fso.GetFolder(filOrigin).Files)
的第一行。我仍然是循环的新手,所以我可能没有正确地初始化它或者只是完全搞砸了它。
Sub test()
Dim fso As FileSystemObject
Dim fsoFiles As Files
Dim fil As File
Dim filOrigin As Range
Dim filDestination As Range
Dim rng As Range
Set fso = New FileSystemObject
Set filOrigin = Sheet1.Range("D2:D57")
Set filDestination = Sheet1.Range("E2:E57")
For Each rng In filOrigin
Set fils = fso.GetFolder(filOrigin).Files
For Each fil In fils
fso.CopyFile filOrigin & "\*.*", filDestination
Next fil
Next rng
End Sub
答案 0 :(得分:0)
在您的代码中,您将Range Object
而不是file path
传递给导致fso.GetFolder()
的{{1}}方法。
看起来您正在尝试执行以下操作:
type mismatch error
For Each rngO In filOrigin
ForEach rngD In filDestination
Set fils = fso.GetFolder(rngO.Value).Files
For Each fil In fils
fso.CopyFile rngO & "\*.*", rngD
Next fil
Next rngO
Next rngD
End Sub
表示rng不是循环中当前位置的变量。