Private Declare Function GetTickCount Lib "kernel32" () As Long Private Sub Pause(ByVal sSec As Long) Dim StartSec As Long StartSec = GetTickCount() While (GetTickCount() - StartSec) / 1000 < sSec DoEvents Wend End Subpause(1)'暂停1秒
暂停的代码我会,我想知道的是如何判断webbrowser是否加载完毕,比如说WebBrowser花了3.7秒加载,像WebBrowser1_DownloadComplete,就是WebBrowser加载结束的执行代码,可是我只能使用 Private Sub WebBrowser1_DownloadComplete() …… End Sub处理,但是如果我想Private Sub Deal() dim i as integer for i=1 to 10 WebBrowser1.Navigate "http://localhost/index.asp?id=" & i*********主要就是这段不会写******************sleep until WebBrowser1_DownloadComplete*********主要就是这段不会写******************doc=WebBrowser1.Document …… next iEnd Sub
把事件放到WebBrowser1_DownloadComplete 里面 public i=0 if wbr(简称).locationurl=yourUrl& i then 事件部分…… i=i+1 if i>10 then wbr.navigate "about:blank" exit sub end if wbr.navigate yourUrl & i end if
第一个问题已经解决,现在主要是第二个问题set a=doc.all.tags("a") set quote=a.item(10) 经常出现quote没有被赋值的错误 而写成如下就不会出问题 set a=doc.all.tags("a") call DelayFun(2) '自定义的延迟两秒的函数 set quote=a.item(10)
3F的 WebBrowser1_DownloadComplete 正解不知道你的DelayFun是如何写的? 如果没整好则 你一call DelayFun(2) 下一行的set quote=a.item(10) 会马上执行并不会等侯2秒Private Sub Command1_Click() Call DelayFun(2) MsgBox "ok" End SubSub DelayFun(Dtm&) Dim starttm& starttm = Timer Do DoEvents Loop Until Timer >= starttm + Dtm End Sub
Private Sub Pause(ByVal sSec As Long)
Dim StartSec As Long
StartSec = GetTickCount()
While (GetTickCount() - StartSec) / 1000 < sSec
DoEvents
Wend
End Subpause(1)'暂停1秒
Private Sub WebBrowser1_DownloadComplete()
……
End Sub处理,但是如果我想Private Sub Deal()
dim i as integer
for i=1 to 10
WebBrowser1.Navigate "http://localhost/index.asp?id=" & i*********主要就是这段不会写******************sleep until WebBrowser1_DownloadComplete*********主要就是这段不会写******************doc=WebBrowser1.Document
……
next iEnd Sub
public i=0 if wbr(简称).locationurl=yourUrl& i then 事件部分…… i=i+1
if i>10 then
wbr.navigate "about:blank"
exit sub
end if
wbr.navigate yourUrl & i
end if
set quote=a.item(10)
经常出现quote没有被赋值的错误
而写成如下就不会出问题
set a=doc.all.tags("a")
call DelayFun(2) '自定义的延迟两秒的函数
set quote=a.item(10)
你一call DelayFun(2) 下一行的set quote=a.item(10) 会马上执行并不会等侯2秒Private Sub Command1_Click()
Call DelayFun(2)
MsgBox "ok"
End SubSub DelayFun(Dtm&)
Dim starttm&
starttm = Timer
Do
DoEvents
Loop Until Timer >= starttm + Dtm
End Sub