Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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宏打印到PDF时出错。仅适用于实际的Adobe,而不适用于Adobe Reader_Vba_Excel_Pdf Generation - Fatal编程技术网

Vba 使用excel宏打印到PDF时出错。仅适用于实际的Adobe,而不适用于Adobe Reader

Vba 使用excel宏打印到PDF时出错。仅适用于实际的Adobe,而不适用于Adobe Reader,vba,excel,pdf-generation,Vba,Excel,Pdf Generation,我有一张Excel表格,它整合了一堆报告,并将它们打印成PDF格式。当我在安装了实际Adobe软件的pc上时,代码运行良好。我试着在我的个人笔记本电脑上使用它,它只有一个adobe reader,宏崩溃了: Sub JoinPDFFile(strPDFToLocation As String, strPDFTo As String, _ strPDFFromLocation As String, strPDFFrom As String) Dim objAcroExchApp As

我有一张Excel表格,它整合了一堆报告,并将它们打印成PDF格式。当我在安装了实际Adobe软件的pc上时,代码运行良好。我试着在我的个人笔记本电脑上使用它,它只有一个adobe reader,宏崩溃了:

Sub JoinPDFFile(strPDFToLocation As String, strPDFTo As String, _
 strPDFFromLocation As String, strPDFFrom As String)



  Dim objAcroExchApp As Object
  Dim objAcroExchNewPDDoc As Object
  Dim objAcroExchExistPDDoc As Object
  Dim intLastPage As Integer
  Dim intNewPages As Integer


  Set objAcroExchApp = CreateObject("AcroExch.App") <---This is the error
  'New PDF document object
  Set objAcroExchApp = CreateObject("AcroExch.PDDoc")
  If Dir(strPDFToLocation & strPDFTo & ".pdf") = strPDFTo & ".pdf" Then
    objAcroExchApp.Open strPDFToLocation & strPDFTo & ".pdf"
   Else
    objAcroExchApp.Create
  End If
子joinPffile(strPDFToLocation作为字符串,strPDFTo作为字符串_
strPDFFromLocation作为字符串,strPDFFrom作为字符串)
Dim objAcroExchApp作为对象
Dim OBJACREOXCHNEWPDDOC作为对象
Dim objAcroExchExistPDDoc作为对象
将intLastPage设置为整数
将intNewPages设置为整数
在此处设置objAcroExchApp=CreateObject(“AcroExch.App”)回复:

此OLE界面可用于Adobe Acrobat,而不是Adobe Reader。

编辑

尝试创建一个宏并测试它。它对我有用。(仅限
xls
文件)

答复如下:

此OLE界面可用于Adobe Acrobat,而不是Adobe Reader。

编辑

尝试创建一个宏并测试它。它对我有用。(仅限
xls
文件)


Excel不需要任何特定的库,就可以使用 AcroExch.App Adobe Pro是必需的。所以这实际上取决于你想用PDF做什么(你的代码不清楚,我猜它不仅仅是打开或创建的),做某些事情Adobe Pro可能更适合,另一个可能做某些事情更好,等等。 例如,SDK功能强大,易于使用,并支持多种功能,如果我需要从PDF创建CSV,我可以通过添加3行来实现 在代码中:

Sub JoinPDFFile(strPDFToLocation As String, strPDFTo As String, _
 strPDFFromLocation As String, strPDFFrom As String)

  Dim objAcroExchApp As Object
  Dim objAcroExchNewPDDoc As Object
  Dim objAcroExchExistPDDoc As Object
  Dim intLastPage As Integer
  Dim intNewPages As Integer
  Dim extractor As New Bytescout_PDFExtractor.CSVExtractor


  'Set objAcroExchApp = CreateObject("AcroExch.App") '<---This is the error
  'New PDF document object
  'Set objAcroExchApp = CreateObject("AcroExch.PDDoc")

  If Dir(strPDFToLocation & strPDFTo & ".pdf") = strPDFTo & ".pdf" Then
    'objAcroExchApp.Open strPDFToLocation & strPDFTo & ".pdf"
    extractor.LoadDocumentFromFile strPDFToLocation & strPDFTo & ".pdf"
    extractor.SaveCSVToFile (strPDFToLocation & strPDFTo & ".csv")
   Else
    'objAcroExchApp.Create
  End If

End Sub
子joinPffile(strPDFToLocation作为字符串,strPDFTo作为字符串_
strPDFFromLocation作为字符串,strPDFFrom作为字符串)
Dim objAcroExchApp作为对象
Dim OBJACREOXCHNEWPDDOC作为对象
Dim objAcroExchExistPDDoc作为对象
将intLastPage设置为整数
将intNewPages设置为整数
Dim提取器作为新的Bytescout_PDFExtractor.CSVExtractor

“Set-objAcroExchApp=CreateObject(“AcroExch.App”)”Excel不需要任何特定的库,就可以使用 AcroExch.App Adobe Pro是必需的。所以这实际上取决于你想用PDF做什么(你的代码不清楚,我猜它不仅仅是打开或创建的),做某些事情Adobe Pro可能更适合,另一个可能做某些事情更好,等等。 例如,SDK功能强大,易于使用,并支持多种功能,如果我需要从PDF创建CSV,我可以通过添加3行来实现 在代码中:

Sub JoinPDFFile(strPDFToLocation As String, strPDFTo As String, _
 strPDFFromLocation As String, strPDFFrom As String)

  Dim objAcroExchApp As Object
  Dim objAcroExchNewPDDoc As Object
  Dim objAcroExchExistPDDoc As Object
  Dim intLastPage As Integer
  Dim intNewPages As Integer
  Dim extractor As New Bytescout_PDFExtractor.CSVExtractor


  'Set objAcroExchApp = CreateObject("AcroExch.App") '<---This is the error
  'New PDF document object
  'Set objAcroExchApp = CreateObject("AcroExch.PDDoc")

  If Dir(strPDFToLocation & strPDFTo & ".pdf") = strPDFTo & ".pdf" Then
    'objAcroExchApp.Open strPDFToLocation & strPDFTo & ".pdf"
    extractor.LoadDocumentFromFile strPDFToLocation & strPDFTo & ".pdf"
    extractor.SaveCSVToFile (strPDFToLocation & strPDFTo & ".csv")
   Else
    'objAcroExchApp.Create
  End If

End Sub
子joinPffile(strPDFToLocation作为字符串,strPDFTo作为字符串_
strPDFFromLocation作为字符串,strPDFFrom作为字符串)
Dim objAcroExchApp作为对象
Dim OBJACREOXCHNEWPDDOC作为对象
Dim objAcroExchExistPDDoc作为对象
将intLastPage设置为整数
将intNewPages设置为整数
Dim提取器作为新的Bytescout_PDFExtractor.CSVExtractor

'Set objAcroExchApp=CreateObject(“AcroExch.App”)'错误消息是什么?是否尝试以管理员身份运行?@Portekoi错误为运行时错误“429”:ActiveX组件无法创建对象。作为管理员运行并不重要。如果我使用的是Adobe Reader而不是实际的Adobe,则会发生此错误。错误消息是什么?是否尝试以管理员身份运行?@Portekoi错误为运行时错误“429”:ActiveX组件无法创建对象。作为管理员运行并不重要。如果我使用的是AdobeReader而不是实际的AdobeReader,则会发生此错误。好的,基本上解决方案是使用AdobeAcrobat而不是AdobeReader。我知道这一点,所以我想问,是否有办法更改代码,使其继续运行,并使用系统上的任何PDF读取器打开/读取?请尝试PDFCreator。我已经做了很长一段时间的测试,但它一直在工作。测试我的宏并告诉meomg dude我的错,我没有看到你在评论中写了宏。我现在就试试,好的,所以基本上解决方案是使用AdobeAcrobat,而不是AdobeReader。我知道这一点,所以我想问,是否有办法更改代码,使其继续运行,并使用系统上的任何PDF读取器打开/读取?请尝试PDFCreator。我已经做了很长一段时间的测试,但它一直在工作。测试我的宏并告诉meomg dude我的错,我没有看到你在评论中写了宏。我现在就去试试