运行没有Sendkeys的VBA代码

我想使用VBA将PDF读入Excel。 我已经能够使用sendkeys,但是这不是一个可靠的解决scheme,因为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 

我研究了一种使用名为“复制到剪贴板”的方法进行复制和粘贴的方法。 但是,没有代码或任何东西可用。 如果任何人都可以帮忙,这将不胜感激。

另外,我find了一个不使用sendkeys的方法。 它实际上定义了一个使用虚拟键盘的function。 但显然,该方法也没有工作,因为代码是不是运行/给出的输出。

码:

 Function F4() keybd_event VK_F4, 1, 0, 0 End Function 

我们可以直接定义相同的函数,直接调用这些函数而不是senkeys。 但没有输出。

如果有人能够帮助上述任何方法,这将是一个很大的帮助。