所以我正在尝试调整我发现的一些代码以满足我的需求。 我在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部分,我一直在寻找几个小时,我只是继续寻找非常特定于其他人脚本的替代功能。
答案 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发送密钥,但手动我比脚本更快,所以我选择不使用它。