Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.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
Excel 使用VBA打开Acrobat文件_Excel_Acrobat_Ole_Vba - Fatal编程技术网

Excel 使用VBA打开Acrobat文件

Excel 使用VBA打开Acrobat文件,excel,acrobat,ole,vba,Excel,Acrobat,Ole,Vba,我在论坛上读到: 并开始试验它。但是我认为这个函数根本没有加载。我不确定它背后的原因是什么——我认为它必须简单,并且可能与图书馆有关。是否有人可以帮助指出以下代码根本无法编译的原因(代码在立即执行时似乎没有运行,因为没有触发任何断点) 我加载的库包括 Acrobat蒸馏器 Adobe Acrobat 10.0类型库 Acrobat扫描1.0类型库 执行此代码的计算机上安装了Acrobat Professional Public Function GetPDF() '(FilePath As

我在论坛上读到: 并开始试验它。但是我认为这个函数根本没有加载。我不确定它背后的原因是什么——我认为它必须简单,并且可能与图书馆有关。是否有人可以帮助指出以下代码根本无法编译的原因(代码在立即执行时似乎没有运行,因为没有触发任何断点)

我加载的库包括

  • Acrobat蒸馏器
  • Adobe Acrobat 10.0类型库
  • Acrobat扫描1.0类型库
执行此代码的计算机上安装了Acrobat Professional

Public Function GetPDF() '(FilePath As String) As Object
    Dim origPdf As Acrobat.AcroPDDoc
    Dim path1 As String
    MsgBox ("Start")

    path1 = Application.ActiveWorkbook.Path
    path1 = path1 & "\31700100.pdf"

    Set origPdf = CreateObject("AcroExch.PDDoc")

    If origPdf.Open(path1) Then
        MsgBox ("weee")
    End If

    origPdf.Close
    Set origPdf = Nothing
End Function

使用以下内容创建模块:

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As 
Long) As Long

Sub GetPDF()
    Dim path1 As String

    MsgBox "Start"

     path1 = Application.ActiveWorkbook.Path
     path1 = path1 & "\31700100.pdf"

    ShellExecute 0, "Open", path1, "", "", _        
    vbNormalNoFocus
End Sub

在VBA中打开文档需要您具有Acrobat应用程序对象。一旦你在函数中有一个app对象,代码就会起作用

Public Function GetPDF (FilePath As String) As Object
    Dim ArcoApp As New Acrobat.AcroApp
    Dim OriPdf As New Acrobat.AcroPDDoc

    Set ArcoApp = CreateObject("AcroExch.App")
    Set OriPdf = CreateObject("AcroExch.PDDoc")

    If OriPdf.Open(FilePath) Then
        MsgBox ("weee")
    End If

    GetPDF = OriPdf

    OriPdf.Close
    AcroApp.Close
    Set OriPdf = Nothing
    Set AcroApp =  Nothing
End Function

嗯,你添加的语句出现了语法错误。。。还是我做错了?@Isa在哪一行显示语法错误?我使用的是Excel 2007,没有任何错误。我使用的是Excel 2013。您建议的declare函数行在我复制并粘贴时突出显示为不可接受的语法。您需要重新编辑declare函数。复制和粘贴时,“下划线”标记将无法读取。只需删除“下划线”标记,并将Declare函数设置在一个长行中@伊萨