我正在尝试在MS EXCEL VBA中为我正在构建的应用程序中的几个Web查询进行自动化,这些应用程序基本上是作为MACRO从我们的公司网站收集信息。我假设他们使用服务器端脚本,因为文档都是在没有参数的单个URL下呈现的。因此,EXCEL Web查询方法是不可能的。我能够以编程方式打开所需的站点,但是需要多层导航才能达到所需的输出。但是,在开始页面上,有一个.onclick函数,它包含一个用于调用指定文档的参数字符串。代码和网络信息是敏感的,所以我不能发布任何真正的代码,但.onclick在源代码中看起来很像这样:
IEdoc.TD.item(i).onclick="fnFtch('MBSOVY07OZ-LIMO/TVDBLDAT#WNISAZÿNÿALLÿTÿIÿÿ ÿ24ÿ ÿÿ ÿ ÿÿ ÿÿ ÿMÿÿNÿNO');"
如果我为它分配一个这样的变量:
strgvar = IEdoc.TD.item(i).onclick or set objvar = IEdoc.TD.item(i).onclick
结果更像是:
function(){'fnFtch('MBSOVY07OZ-LIMO/TVDBLDAT#WNISAZÿNÿALLÿTÿIÿÿ ÿ24ÿ ÿÿ ÿ ÿÿ ÿÿ ÿMÿÿNÿNO');'}
我想将“#”后面的字符串部分更改为我最终会在几页编程导航后最终得到的参数。 我用我想要的字符串替换不需要的部分,.click停止做任何事情。 对我来说很明显,我正在混合“字符串”和“对象”属性,因为如果我这样做:
Set objvar = IEdic.TD.item(i).onclick
strgvar = objvar
IEdoc.TD.item(i).onclick = strgvar
.click无效。
如果我将所有“对象”类型保留为:
Set objvar = IEdoc.TD.item(i).onclick
IEdoc.TD.item(i).onclick = objvar
.click仍然可以使用 这些代码都没有返回“类型不匹配”错误,它只是呈现.click惰性
答案 0 :(得分:0)
您是否尝试使用navigate和Document.documentElement.innerHTML来阅读页面上的文字?我使用FireBug跟踪一个网站,并且对于您看到的每个页面都必须转到两个页面(第一页是“请求”,第二页实际上是给了您内容)。非常麻烦,但我让它与Navigate合作。
答案 1 :(得分:0)
FireEvent
用于触发附加到任何元素的事件。请尝试以下代码。
Set objvar = IEdic.TD.item(i)
objvar.FireEvent("onclick")