我想使用VBA将PDF读入Excel。我已经能够使用sendkeys这样做,但这不是一个可靠的解决方案,因为sendkeys通常很容易受到攻击。是否有任何其他方法或任何直接方法(在VBA或Python中)?
使用sendkeys的代码:
Sub Get_Pdf()
Dim XLName As String, PDFPath As String, READERPath As String
Dim OpenPDF, sh As Worksheet
XLName = ThisWorkbook.Name
Set sh = ThisWorkbook.Sheets(1)
PDFPath = Application.GetOpenFilename(filefilter:="PDF file (*.pdf), *.pdf")
If UCase(PDFPath) = "FALSE" Then Exit Sub
'~~> Below path differs depending Adobe version and installation path
READERPath = "C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe"
Shell READERPath & " " & PDFPath, vbNormalFocus: DoEvents
Application.Wait Now + TimeValue("00:00:2")
SendKeys "^a", True
Application.Wait Now + TimeValue("00:00:2")
SendKeys "^c"
Application.Wait Now + TimeValue("00:00:2")
Windows(XLName).Activate
sh.Paste sh.Range("A1")
SendKeys "%{F4}", True
End Sub
我研究了一种使用名为“copy to clipboard”的方法进行复制和粘贴的方法。但是,没有代码或任何东西可用。如果有人也可以提供帮助,我们将不胜感激。
另外,我发现了一种不使用sendkeys的方法。它实际上定义了一个使用虚拟键盘的功能。但显然,该方法也不起作用,因为代码根本没有运行/给出输出。
代码:
Function F4()
keybd_event VK_F4, 1, 0, 0
End Function
我们可以直接定义相同的其他函数并直接调用这些函数而不是senkeys。但没有输出。
如果有人可以提供任何上述方法的帮助,那将是一个很大的帮助。