vba application.filesearch update

时间:2015-06-18 16:37:42

标签: excel vba excel-vba

所以我正在尝试调整我发现的一些代码以满足我的需求。 我在VBA非常棒,但是我遇到了2010年无法使用的application.filesearch方法的问题。

我的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部分,我一直在寻找几个小时,我只是继续寻找非常特定于其他人脚本的替代功能。

1 个答案:

答案 0 :(得分:0)

所以我一直在研究这个问题,然后我放弃了宏观方法,并采用了一种非常基本的方法,只需单击每个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

我会对如何使这个用户更友好和/或学习API焦点的任何其他建议非常感兴趣,所以我可能会有一个对话框来确认我是否要打印所选的pdf。

我确实有一个对话框设置,但是当我点击确认对话框时,我无法弄清楚如何将焦点重新放回到adobe reader上,我确实在脚本中延迟了我可以点击的位置回到adobe reader发送密钥,但手动我比脚本更快,所以我选择不使用它。