我在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命令,如最初的想法?
到目前为止,它对我来说没有多大意义如何/为什么这是真的(更不用说我如何解决这个问题了).
Hello StackOverflow社区,
我有一个关于使用Access VBA来操纵IE的问题.
本质上,我正在尝试编写将使用IE打开特定网页的代码,搜索特定链接的页面(目标链接的名称将取决于用户的具体情况),通过编程方式单击该页面导航到新页面链接,然后通过在生成的新页面上查找特定的链接/元素来重复该过程.
最终目标链接的显示文本将始终相同,但它所驻留的页面在每种情况下都会有所不同.
我的问题是以编程方式在二级页面中搜索驻留在那里的元素...我的结果只给出了来自第一级页面的元素,即使在浏览器加载了新链接之后也是如此.
如果我到目前为止描述问题的背景我做得不好,请道歉.
我的代码基本上如下:
Dim ie As Object, ieDoc As HTMLDocument
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
strHTML = "http://targetsite.com/first-level_page"
ie.navigate strHTML
'wait for browser
While ie.ReadyState <> READYSTATE_COMPLETE
DoEvents
Wend
'define first-level target link and search for it and then "click" it
Dim i As Integer
Dim txt As String, link As String, p As String
Set ieDoc = ie.Document
txt = "First-Level Target"
Do Until link = txt Or i >= 1000 …Run Code Online (Sandbox Code Playgroud)