【发布时间】:2018-09-06 01:02:48
【问题描述】:
我有一张 Excel 表格,它整合了一堆报告并将它们打印为 PDF。当我在安装了实际 Adobe 软件的电脑上时,代码运行良好。我尝试在我的个人笔记本电脑上使用它,它只有一个 adobe 阅读器,并且宏崩溃了:
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
它说 Set objAcroExchApp = CreateObject("AcroExch.App")
所以我想知道。我是否必须返回并更改代码中的所有内容,以便它可以与当前用户拥有的任何 PDF 文件阅读器一起使用?
我尝试在上面使用 On Error Resume Next,它所做的只是放弃整个过程,只打印应该有 20 页的第一页。
有没有办法只简单地编写整个代码,以便它制作一个 PDF 文件,而不取决于我是否有 Adobe?因此,即使您使用 Foxit、Dejvu 等。它仍然有效吗?
【问题讨论】:
-
错误信息是什么?您尝试以管理员身份运行吗?
-
@Portekoi 错误是运行时错误“429”:ActiveX 组件无法创建对象。以管理员身份运行并不重要。如果我使用的是 Adobe Reader 而不是实际的 Adobe,则会发生此错误。
标签: vba excel pdf-generation