我在Excel-VBA中编写了一个小实用程序,它还可以在一些单独的.pdf文件中与Acrobat Javascript交互。
该代码已经过广泛测试,并且在我的台式PC上完全按预期运行。但是,我最终需要在Microsoft Surface平台上实现此代码。当我尝试从Microsoft Surface上的Excel文件运行相同的代码时,代码在使用“GetJSObject”的任何行中都会出现。
EG。以下在我的电脑上工作正常,但在我的Surface上导致“对象或方法不受支持”错误。
Set gAPP = CreateObject("AcroExch.App")
Set gPDDOC = CreateObject("AcroExch.PDDoc")
If gPDDoc.Open(pdfFileName) Then Set jso = gPDDOC.GetJSObject
到目前为止,我已经能够在网上找到一些提示,GetJSObject在64位环境中无法正常工作,我的Surface运行64位Windows 10和32位Excel。
但是,我不认为仅凭这一点就可以解释两台机器的行为差异;我的桌面运行64位Windows 7和32位Excel,一切都按预期工作。
我应该在哪里寻找帮助发现问题的来源(和解决方案)?
EDIT / UPDATE :getJSObject语句实际上按预期工作, IF 我采取了额外的步骤,在Acrobat中手动打开一个相关.pdf文件的副本在运行我的VBA代码之前。我假设这意味着它在某种程度上是对象定义(例如Set gAPP = CreateObject("AcroExch.App")
)在Surface上相对于我的PC的工作方式不同 - 而不是具体的getJSObject命令,如最初的想法?
到目前为止,对于我如何/为什么这是真的没有多大意义(更不用说我如何解决这个问题)。
答案 0 :(得分:1)
不确定这是否已经回答,但是我会采取两种行动方案进行研究:
1
使用以下命令查看是否可以在没有构造函数的情况下启动它:
Set AcroApp = New AcroApp
而不是
Set AcroApp = CreateObject("AcroExch.App")
2
确保您使用相同版本的acrobat,从我的研究中发现此错误来自Google搜索查询的第一个结果:
createobject acroexch.app error 429
You cannot do this with Adobe Reader, you need Adobe Acrobat.
此OLE接口可用于Adobe Acrobat,而不是Adobe Reader。