【发布时间】:2018-05-21 09:53:26
【问题描述】:
我有以下 VBA 用于将 PDF 数据复制到 Excel 工作表,使用 Word 转换该数据:
Private Sub CommandButton3_Click() '(load pdf)
Dim o As Variant
Set appWord = CreateObject("Word.Application")
o = Shell("C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe C:\Users\User Profile Name\Desktop\Book1.pdf2", vbNormalFocus)
Application.Wait (Now + TimeSerial(0, 0, 2))
SendKeys ("^a")
SendKeys ("^c")
SendKeys "%{F4}"
Application.Wait Now + TimeValue("00:00:01")
Set appWord = CreateObject("Word.Application")
appWord.Visible = False
appWord.Documents.Add.Content.Paste
With appWord
.Selection.WholeStory
.Selection.Copy
.ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
.Quit
End With
MsgBox " pdf is loaded "
MsgBox " Paste to EXCEL "
Set wkSheet = ActiveSheet
wkSheet.Range("A1").Select
wkSheet.Paste
End Sub
如我们所见,这将从“C:\Users\User Profile Name\Desktop\Book1.pdf2”获取 PDF。
我需要帮助将其更改为打开“选择文件”框,以便我可以选择要转换的 PDF?
【问题讨论】:
-
对不起,我还想问它是否可以让我“选择一张工作表”来粘贴我想要的结果。
-
搜索
Application.FileDialog(msoFileDialogOpen)。关于如何在 SO 上实现它的大量示例。 msdn:msdn.microsoft.com/en-us/vba/excel-vba/articles/… -
或较新版本中的 Application.GetOpenFileName。要选择工作表名称,请查看 InputBox()