我对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”)
我是否正确地使用此代码?还是有替代方法来完成这项任务?
谢谢!
答案 0 :(得分:0)
始终使用Option Explicit
开始您的模块。这迫使你声明所有变量,这是一件好事。
然后,在运行代码之前始终编译代码。这可以从Debug菜单中完成 - &gt;编译。在您的情况下,编译将失败,因为没有声明几个字符串变量(除非它们在模块级别声明),并且因为您使用的双引号不是&#39;#34;即“和”。看到不同? VBA不喜欢他们: - )