繁体   English   中英

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

[英]How to copy specific files from subfolders to a destination folder? (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:\Users\A\Desktop\test1" 'user will define this
    ToPath = "D:\Users\A\Desktop\test2"   '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不喜欢他们:-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM