vba application.filesearch更新

vba application.filesearch更新,vba,excel,Vba,Excel,所以我正试图根据自己的需要修改一些代码。 我对VBA很在行,但我遇到了一个问题,即application.filesearch方法在2010年不可用 我的excel工作簿有一个20k超链接.pdf文件列表,我想打印出来,但是这个脚本只是让我点击宏,一次打印几个文件,我没有编写部分来打印我想打印的选定部分,而不是全部内容。但我所有的超链接都在A列中 Sub AutoPrintPDFs() Dim Folder As String Dim FName As String Dim bk As Wor

所以我正试图根据自己的需要修改一些代码。 我对VBA很在行,但我遇到了一个问题,即application.filesearch方法在2010年不可用

我的excel工作簿有一个20k超链接.pdf文件列表,我想打印出来,但是这个脚本只是让我点击宏,一次打印几个文件,我没有编写部分来打印我想打印的选定部分,而不是全部内容。但我所有的超链接都在A列中

Sub AutoPrintPDFs()

Dim Folder As String
Dim FName As String
Dim bk As Workbook
Dim strPath As String

strPath = ThisWorkbook.Path

With Application.FileSearch
.SearchSubFolders = True
.LookIn = strPath
.FileType = msoFileTypeAllFiles

If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count

If .FoundFiles(i) Like "*.pdf" Then
ActiveWorkbook.FollowHyperlink .FoundFiles(i), NewWindow:=True
Application.SendKeys "^p~", False
Application.Wait (Now + TimeValue("0:00:05"))
Application.SendKeys "%{F4}", False
Application.Wait (Now + TimeValue("0:00:05"))

End If

Next i
Else
MsgBox "All files done."
End If

End With
End Sub

我希望你能在这个application.filesearch部分帮助我,我已经找了几个小时了,我只是一直在寻找其他人的脚本所特有的替代函数

所以我一直在研究这个问题,我放弃了宏方法,转而使用一种非常基本的方法,只需单击每个pdf

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Cells.Count <> 1 Then Exit Sub
On Error Resume Next
    Application.ActiveWorkbook.FollowHyperlink Address:=CStr(Target.Value), NewWindow:=True
    Application.Wait (Now + TimeValue("0:00:03"))
    Application.SendKeys "^p~", False
    Application.Wait (Now + TimeValue("0:00:05"))
    Application.SendKeys "%{F4}", False
End Sub
Private子工作表\u selection更改(ByVal目标作为范围)
如果Target.Cells.Count为1,则退出Sub
出错时继续下一步
Application.active工作簿.FollowHyperlink地址:=CStr(Target.Value),NewWindow:=True
Application.Wait(现在+时间值(“0:00:03”))
Application.SendKeys“^p~”,False
Application.Wait(现在+时间值(“0:00:05”))
Application.SendKeys“{F4}”,False
端接头
我会非常感兴趣的任何其他建议,如何使这更用户友好和/或学习API的重点,所以我可能会有一个对话框,以确认我是否要打印选定的pdf

我确实有一个对话框设置,但我不知道如何将焦点放回adobe reader。单击确认对话框后,我确实在脚本中设置了一个延迟,以便我可以单击返回adobe reader发送密钥,但手动操作的速度比脚本快,所以我选择不使用它