我正在尝试在 MS EXCEL VBA 中为我在工作中构建的应用程序自动执行多个 Web 查询,该应用程序基本上作为宏来从我们的企业网站收集信息。我假设他们使用服务器端脚本,因为所有文档都在一个没有参数的 URL 下呈现。因此EXCEL网页查询方法是不可能的。我能够以编程方式打开所需的站点,但是需要层层导航才能达到所需的输出。然而,在打开的页面上,有一个 .onclick 函数,它保存用于调用指定文档的参数字符串。代码和 Web 信息很敏感,因此我无法发布任何真实代码,但 .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 惰性
最佳答案
您是否尝试过使用navigate和Document.documentElement.innerHTML来读取页面上的文本?我使用 FireBug 跟踪一个网站,并且必须为您看到的每个页面转到两个页面(第一页是“请求”,第二页实际上为您提供了内容)。非常麻烦,但我让它与 Navigate 一起使用。
关于vba - MS EXCEL VBA 中的 Web 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19462434/