在Microsoft Surface(Excel-VBA)上运行时,GetJSObject失败

Joh*_*oob 6 javascript acrobat vba tablet-pc excel-vba

我在Excel-VBA中编写了一个小实用程序,它还在一些单独的.pdf文件中与Acrobat Javascript交互.

该代码已经过广泛测试,并且在我的台式PC上完全按照预期运行.但是,我最终需要在Microsoft Surface平台上实现此代码.当我尝试从Microsoft Surface上的Excel文件运行相同的代码时,代码在任何行使用"GetJSObject".

例如.以下在我的电脑上工作正常,但在Surface上导致"对象或方法不受支持"错误.

Set gAPP = CreateObject("AcroExch.App")

Set gPDDOC = CreateObject("AcroExch.PDDoc")

If gPDDoc.Open(pdfFileName) Then Set jso = gPDDOC.GetJSObject
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经能够在网上找到一些提示,GetJSObject在64位环境中不能正常工作,我的Surface运行64位Windows 10和32位Excel.

但是,我认为仅凭这一点就不能解释两台机器的行为差异; 我的桌面运行64位Windows 7和32位Excel,一切都按预期工作.

我应该在哪里寻找帮助发现问题的来源(和解决方案)?

编辑/更新:getJSObject语句实际上按预期工作,如果我在运行我的VBA代码之前采取了在Acrobat中手动打开一个相关.pdf文件的副本的附加步骤.我认为这意味着它在某种程度上是对象定义(例如Set gAPP = CreateObject("AcroExch.App"))在Surface上相对于我的PC的工作方式不同 - 而不是具体的getJSObject命令,如最初的想法?

到目前为止,它对我来说没有多大意义如何/为什么这是真的(更不用说我如何解决这个问题了).

小智 1

不确定这个问题是否已经得到解答,但是我会采取两种研究行动:

1.

看看是否可以在没有构造函数的情况下启动它,方法是:

Set AcroApp = New AcroApp
Run Code Online (Sandbox Code Playgroud)

而不是

Set AcroApp = CreateObject("AcroExch.App")
Run Code Online (Sandbox Code Playgroud)

2.

确保您使用相同版本的 acrobat,根据我的研究,此错误发生在 Google 搜索查询的第一个结果中:

createobject acroexch.app error 429
You cannot do this with Adobe Reader, you need Adobe Acrobat.
Run Code Online (Sandbox Code Playgroud)

此 OLE 界面适用于 Adob​​e Acrobat,不适用于 Adob​​e Reader。