Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vba excel中是否有选择要显示的excel窗口的代码?_Excel_Vba - Fatal编程技术网

vba excel中是否有选择要显示的excel窗口的代码?

vba excel中是否有选择要显示的excel窗口的代码?,excel,vba,Excel,Vba,我正试图从某个pdf文件复制所有文本并粘贴到我的工作簿上,但我不知道如何从pdf acrobat窗口返回excel窗口并使用该代码粘贴它 alt选项卡的sendkeys不工作 Sub last() ActiveWorkbook.FollowHyperlink "C:\Users\Ewallet2\Desktop\New folder\test (1).pdf" Application.DisplayAlerts = False Application.Wait (Now + TimeSeri

我正试图从某个pdf文件复制所有文本并粘贴到我的工作簿上,但我不知道如何从pdf acrobat窗口返回excel窗口并使用该代码粘贴它

alt选项卡的sendkeys不工作

Sub last()


ActiveWorkbook.FollowHyperlink "C:\Users\Ewallet2\Desktop\New folder\test (1).pdf"
Application.DisplayAlerts = False
Application.Wait (Now + TimeSerial(0, 0, 2)) 

   SendKeys "^a"   'Select All
   SendKeys "^c"   'Copy

     Application.Wait (Now + TimeSerial(0, 0, 1)) '
     Application.SendKeys ("%{TAB}")
      Application.Wait (Now + TimeSerial(0, 0, 1)) 
      SendKeys "%{F4}"    'Close shell application

     ThisWorkbook.Sheets("248").Range("l21").Select
      Application.Wait (Now + TimeSerial(0, 0, 1)) 
   Application.SendKeys "^v"

   Next x
End Sub

我想要的是一行代码,用于在pdf acrobat和ms excel工作簿之间切换。解决此问题的方法是在粘贴时使用特定的excel范围,而不是模仿使用键盘。换句话说,
SendKeys
仅对发送到机器上安装的默认PDF软件的命令是必需的。对于与Excel有关的所有内容,请使用Excel的对象模型

以下代码示例基于问题中的示例,声明(
Dim
s)并实例化(
Set
s)工作簿、工作表和作为粘贴目标的单元格区域的对象变量

Sub PasteFromPDF()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim rng As Range

    Set wb = ActiveWorkbook
    Set ws = wb.Sheets("248")
    wb.FollowHyperlink "C:\Users\Ewallet2\Desktop\New folder\test (1).pdf"
    Application.DisplayAlerts = False
    Application.Wait (Now + TimeSerial(0, 0, 2))

    SendKeys "^a"   'Select All
    SendKeys "^c"   'Copy

    Application.Wait (Now + TimeSerial(0, 0, 1))
    SendKeys "%{F4}"    'Close shell application

   Set rng = ws.Range("L21")
   ws.Paste rng
End Sub

解决这个问题的方法是在粘贴时使用特定的Excel范围,而不是模仿使用键盘。换句话说,
SendKeys
仅对发送到机器上安装的默认PDF软件的命令是必需的。对于与Excel有关的所有内容,请使用Excel的对象模型

以下代码示例基于问题中的示例,声明(
Dim
s)并实例化(
Set
s)工作簿、工作表和作为粘贴目标的单元格区域的对象变量

Sub PasteFromPDF()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim rng As Range

    Set wb = ActiveWorkbook
    Set ws = wb.Sheets("248")
    wb.FollowHyperlink "C:\Users\Ewallet2\Desktop\New folder\test (1).pdf"
    Application.DisplayAlerts = False
    Application.Wait (Now + TimeSerial(0, 0, 2))

    SendKeys "^a"   'Select All
    SendKeys "^c"   'Copy

    Application.Wait (Now + TimeSerial(0, 0, 1))
    SendKeys "%{F4}"    'Close shell application

   Set rng = ws.Range("L21")
   ws.Paste rng
End Sub

看起来像是
AppActivate()
的工作,我想我已经试过了。你能解释一下如何在我现有的代码中使用它吗?看起来像是
AppActivate()
的工作,我想我已经试过了。你能给我解释一下如何在我现有的代码中使用它吗?pdf中的文本只能复制,但粘贴到工作簿上不起作用。我使用了sendkeys“^v”,它可以正常工作。但建议使用sendkeys功能?仅复制pdf中的文本,但粘贴到工作簿上不起作用。我使用了sendkeys“^v”,它可以正常工作。但建议使用sendkeys功能?