【发布时间】:2015-05-04 07:15:44
【问题描述】:
我有 pdf 文件,我想将其中的所有数据复制到电子表格的列中。
这是我的代码。它所做的只是打开 pdf,使用 control-a,然后 control-c 进行复制,然后激活工作簿,找到一个打开的列并使用 control-v Sendkey 粘贴数据。
我有一个带有路径名的范围,它打开并复制所有数据,但只粘贴最后一个。
Sub StartAdobe1()
Dim AdobeApp As String
Dim AdobeFile As String
Dim StartAdobe
Dim fname As Variant
Dim iRow As Integer
Dim Filename As String
For Each fname In Range("path")
AdobeApp = "C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe"
StartAdobe = Shell("" & AdobeApp & " " & fname & "", 1)
Application.Wait Now + TimeValue("00:00:01")
SendKeys "^a", True
Application.Wait Now + TimeValue("00:00:01")
SendKeys "^c"
Application.Wait Now + TimeValue("00:00:01")
SendKeys ("%{F4}")
Windows("transfer (Autosaved).xlsm").Activate
Worksheets("new").Activate
ActiveSheet.Range("A1").Select
Selection.End(xlToRight).Offset(0, 1).Select
SendKeys "^v"
Application.Wait Now + TimeValue("00:00:2")
Next fname
【问题讨论】:
-
您的计算机上是否安装了 Acrobat(不是 Reader)。如果是这样,您可以使用 Acrobat 对象模型将数据从 PDF 复制到 Excel,而无需使用
SendKeys。如果你这样做,请告诉我,我会用示例代码发布答案 -
是的,我也有杂技演员