尝试将文件从一个文件夹复制到另一个文件夹时,键入不匹配错误

时间:2018-03-19 19:27:17

标签: excel vba excel-vba

我正在尝试将列表中的所有文件复制到旁边单元格中的另一个文件夹中。我需要这个循环遍历列中的所有条目。我从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

1 个答案:

答案 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不是循环中当前位置的变量。