3

我正在尝试在 MS EXCEL VBA 中为我正在构建的应用程序自动执行几个 Web 查询,该应用程序基本上是作为 MACRO 来收集来自我们公司网站的信息。我假设他们使用服务器端脚本,因为文档都显示在一个没有参数的 URL 下。因此,EXCEL 网络查询方法是不可能的。我能够以编程方式打开所需的站点,但是要达到所需的输出需要层层导航。但是,在打开的页面上,有一个 .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 惰性

4

2 回答 2

0

您是否尝试过使用导航和 Document.documentElement.innerHTML 来阅读页面上的文本?我使用 FireBug 跟踪一个网站,并且必须为您看到的每个页面访问两个页面(第一页是“请求”,第二页实际上给了您内容)。非常麻烦,但我让它与 Navigate 一起工作。

于 2013-10-29T23:57:38.387 回答
0

FireEvent用于触发附加到任何元素的事件。试试下面的代码。

Set objvar = IEdic.TD.item(i)
objvar.FireEvent("onclick")
于 2013-10-30T00:31:28.863 回答