IE自动化通过Excel vba

时间:2016-07-18 14:50:36

标签: excel vba internet-explorer

我遇到的问题非常简单。我正在打开一个网页,找到输入框,我输入一些文字,然后点击搜索按钮。上传新网页后,我会收集所有需要的信息。我的问题在于上传网页的时间。我的收集代码无法正常工作,因为新网页仍未加载。我有以下代码等待:

Do While ie.ReadyState <> READYSTATE_COMPLETE
            DoEvents
 Loop

其中ie设置如下

Set ie = New InternetExplorer

application.wait之外还有其他代码我可以用它来解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

尝试相同时我遇到了类似的问题。问题是IE对象上的就绪状态不能总是被信任,或者至少,它并不表示你的想法。例如,它会告诉您每个帧何时准备好,而不是整个页面。因此,如果您实际上不需要查看Web浏览器控件,而您只关心发送和接收数据。我的建议是不打扰在Web浏览器对象中重新发送页面,而只是使用WinHttpRequest发送和接收数据。

工具&gt;参考&gt; Microsoft WinHTTP服务

使用此功能,您可以直接发送和接收HTML数据。如果您的页面使用URL参数,则发送“GET”然后解析回复。否则,您将必须发送“PUT”并发送已编辑的HTML(基本上采用您开始的空白表单页面并设置所有值)。首次使用时,根据您尝试自动化的页面的复杂性,确保格式正确可能有点棘手。找一个好的网络挖掘工具(比如Fiddler),这样你就可以看到发送到你的目标页面的HTML。