无法在VBA中创建PDF-XChange Editor ActiveX实例求助
PDF-XChange Editor ActiveX实例创建失败问题解决
问题说明
在VBA中初始化PDF-XChange Editor ActiveX时无法创建实例,运行代码时报运行时错误'91':对象变量或With块变量未设置,原代码如下:
Public Sub CreateDoc() Dim PXC As PXC_Inst Dim Doc As IPXC_Document 'Initialize PXC.Init "" Set PXC = New PXC_Inst 'Create new document, save as pdf Set Doc = PXC Doc.WriteToFile "c:\users\syntax\desktop\Test.pdf" 'Close document and Finalize Doc.Close 'PXC.Finalize End Sub
错误原因及修正方案
1. 实例化顺序错误
原代码先调用PXC.Init "",但此时PXC变量尚未完成实例化,直接调用方法会触发对象未设置的错误。必须先创建实例,再执行初始化操作。
2. 文档创建逻辑错误
不能直接将PXC_Inst对象赋值给IPXC_Document变量,需调用PXC.NewDocument方法生成合法的文档实例。
3. 缺少SDK引用
需先在VBA编辑器中添加对应组件引用:
- 打开VBA编辑器(快捷键Alt+F11)
- 点击菜单栏「工具」→「引用」
- 在列表中找到并勾选Tracker Software PDF-XChange Editor SDK(名称可能因版本略有差异)
修正后的代码
Public Sub CreateDoc() Dim PXC As PXC_Inst Dim Doc As IPXC_Document ' 先实例化对象,再执行初始化 Set PXC = New PXC_Inst PXC.Init "" ' 创建空白PDF文档实例 Set Doc = PXC.NewDocument(Nothing, Nothing) ' 保存文档,校验保存结果 If Doc.WriteToFile("c:\users\syntax\desktop\Test.pdf", 0, Nothing) Then MsgBox "文档保存成功" Else MsgBox "文档保存失败" End If ' 释放资源 Doc.Close PXC.Finalize Set Doc = Nothing Set PXC = Nothing End Sub
额外注意事项
- 确保已正确安装PDF-XChange Editor及对应版本的SDK,组件版本需与引用匹配
- 保存路径需保证当前用户有写入权限,避免因权限问题导致保存失败
内容的提问来源于stack exchange,提问作者Ashish
相关产品推荐
相关产品推荐

