excel等待网页打开

标签 excel vba wait

我编写了一些 VBA 脚本来加载网页,然后将整个 html 内容复制到一个字符串中,然后从该字符串中选择特定数据。本质上,我搜索铁路时刻表,然后复制 5 次旅程的详细信息(出发时间、换乘、旅程时间和成本)

我已对上述脚本进行排序以进行一次搜索,但我现在想循环它并运行大约 300 次搜索。我发现的问题是脚本不会等待网页打开,因此返回的字符串为空,实际上什么也不返回。

我需要做的是加载一个地址,等待页面加载,然后继续脚本。你有什么建议吗?我搜索了很多,只是无法排序,我试过Application.Wait在许多地方,仍然没有进一步的进展。

我正在使用的代码如下:

Sub CreateIE()
Dim tOLEobject As OLEobject
Dim NRADDRESS As String
NRADDRESS = Range("h11")
On Error Resume Next
Worksheets("Sheet1").Shapes.Range(Array("WebBrow")).Delete
Set tOLEobject = Worksheets("Sheet1").OLEObjects.Add(ClassType:="Shell.Explorer.2",Link:=False, _
DisplayAsIcon:=False, Left:=0, Top:=15, Width:=912, Height:=345)

For Each tOLEobject In Worksheets("Sheet1").OLEObjects
If tOLEobject.Name = "WebBrowser1" Then
With tOLEobject
.Left = 570
.Top = 1
.Width = 510
.Height = 400
.Name = "WebBrow"
End With


With tOLEobject.Object
.Silent = True
.MenuBar = False
.AddressBar = False
.Navigate NRADDRESS
End With
End If
Next tOLEobject

Sheets("Sheet2").Activate
Sheets("Sheet1").Activate

Call ReturnText
End Sub
NRADDRESS是由多个不同参数(起点、目的地、日期和时间)组成的网址

“Call ReturnText”是我用来将网站 HTML 复制到字符串中并提取我想要的内容的脚本。

最佳答案

在这种情况下,您可以尝试这样的事情:

Set objIE = CreateObject("InternetExplorer.Application")
objIE.navigate strURL

Do While objIE.readyState <> 4 And objIE.Busy
   DoEvents
Loop

我认为,这需要引用 Microsoft Internet Controls。

关于excel等待网页打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23631621/

相关文章:

excel - 如何让我的 VBA 项目引用 OneDrive 上的 Excel 工作簿以使用本地驱动器路径而不是 OneDrve URL 路径?

excel - 从 Outlook 到 Excel 的 VBA 导出的日期格式更改

VBA - 不带返回变量的调用函数

excel - 在 Excel VBA 中格式化 Powershell 命令行

excel - VBA excel 可以调用 API DataRoboot 吗?

excel - VBA - 将光标位置作为单元格地址

vba - 以编程方式在 VBA 代码中设置断点

bash - 在 Bash IO 重定向中等待 subshel​​l

java - 为什么我们需要在同一个对象上同步 notify() 才能工作

c - 如何在 C/C++ 中等待子进程直到达到 CPU 时间超时?