2017-09-27 493 views
-1

我已经试过这段代码,但它不能正常工作,请亲切地帮助我解决这个问题。如何从PDF中复制数据并使用vba将其粘贴到excel中

Sub Shell_Copy_Paste() 

    Dim o As Variant 
    Dim wkSheet As Worksheet 

    Set wkSheet = ActiveSheet 

    o = Shell("C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe C:\Users\saurabh.ad.sharma\Desktop\red.pdf", vbNormalFocus) 

    Application.Wait (Now + TimeSerial(0, 0, 2)) 'Wait for Acrobat to load 

    SendKeys "^a" 'Select All 
    SendKeys "^c" 'Copy 
    SendKeys "%{F4}" 'Close shell application 

    wkSheet.Range("B5").Select 
    SendKeys "^v" 'Paste 

End Sub 

好心指出错误和我这个

+3

如果你指出错误,那么每个人都会更容易,然后让我们帮你修复它。哪条线路崩溃?你会得到什么错误信息?如果它没有崩溃,那么你认为它应该做什么不是做什么? – YowE3K

+2

原则上,代码的工作原理(只是测试它),但有太多的东西可能会失败(阅读器无法启动,PDF文件无法打开,PDF只包含一个图片,仅举几个例子),你真的应该告诉你的问题是什么 - 以及你自己已经做了什么来找到问题 – FunThomas

+0

它通过复制它复制PDF文件,但实际上没有粘贴到excel – saurabh255

回答

0

这是最好的,如果你不硬编码您的宏。下面的代码将允许你选择你想要的文件,所以你不会有打开PDF文件的问题。

Sub run() 


Dim fn As String 

With Application.FileDialog(msoFileDialogOpen) 
.AllowMultiSelect = False 
If .Show = -1 Then 
fn = .SelectedItems(1) 
Else 
MsgBox "You cancel the process." 
Exit Sub 
End If 
End With 

End Sub