如何将特定文件从子文件夹复制到目标文件夹?(Excel VBA)



我对 VBA 相当陌生,非常感谢对该程序的任何帮助!

该程序的目标是将所有特定的文件类型(.pdf(从网络复制到桌面上的文件夹中。但是,(.pdf( 文件位于每个文件夹子文件夹中。

如果我让用户定义文件夹(具有许多子文件夹(,我希望程序将每个子文件夹中的每个.pdf复制到目标文件夹中。

这就是我到目前为止从浏览互联网中得到的。

Sub Copy_test2()
Dim FSO As Object, fld As Object
Dim fsoFile As Object
Dim fsoFol As Object
    FromPath = "D:UsersADesktoptest1" 'user will define this
    ToPath = "D:UsersADesktoptest2"   'this will be the folder on the desktop
    If Right(FromPath, 1) <> "" Then
        FromPath = FromPath & ""
    End If
Set FSO = CreateObject(“Scripting.FileSystemObject”)
Set fld = FSO.GetFolder(FromPath)
If FSO.FolderExists(fld) Then
    For Each fsoFol In FSO.GetFolder(FromPath).subfolders
        For Each fsoFile In fsoFol.Files
            If Right(fsoFile, 3) = “pdf” Then
                fsoFile.Copy ToPath
            End If
        Next
    Next
End If
End Sub

当我运行它时,我得到:运行时错误"424"对象需要

Set FSO = CreateObject(“Scripting.FileSystemObject”)

我是否以正确的方式处理此代码? 或者是否有其他方法来完成此任务?

谢谢!

始终以 Option Explicit 开头。这迫使你声明所有变量,这是一件好事。

然后,始终在运行代码之前对其进行编译。这可以从"调试"菜单-"编译">完成。在您的情况下,编译将失败,因为没有声明几个字符串变量(除非它们是在模块级别声明的(,并且因为您使用的双引号不是 ",即 " 和 "。看到区别了吗?VBA不喜欢他们:-(

最新更新