运行下面代码时为什么老是提示实时错误'-2147467259(80004005)':
对象'GoBack'的方法'IWebBrowser2'失败代码:
================================
Private Sub Command1_Click()
Set doc = WebBrowser1.Document
For i = 0 To doc.All.length - 1
'向文本框输入“你好”
If doc.All(i).tagName = "INPUT" Then doc.All(i).Value = "你好": Exit For
Next
'故意延时两秒,让你看清是先输入再点击的
t = Timer
Delay: DoEvents
If Timer < t + 2 Then GoTo Delay
For i = 0 To doc.All.length - 1
If doc.All(i).tagName = "INPUT" Then
'点击“百度一下”按钮
If doc.All(i).Value = "百度一下" Then doc.All(i).Click
End If
NextWebBrowser1.GoBack
End SubPrivate Sub Form_Load()
WebBrowser1.Navigate "http://www.baidu.com"
End Sub
==============================还有请问怎样可以写才可以做到搜索一个关键词后,在搜索结果页面停留10秒后后退回主页(www.baidu.com)?我试了很多方法,得出的结果总是在搜索前停留10秒,而不是在搜索页面停留10秒,请大家指教

解决方案 »

  1.   

    Private Sub Command1_Click()
    Set doc = WebBrowser1.Document
    For i = 0 To doc.All.length - 1
    '向文本框输入“你好”
    If doc.All(i).tagName = "INPUT" Then doc.All(i).Value = "你好": Exit For
    Next
    '故意延时两秒,让你看清是先输入再点击的
    t = Timer
    Delay: DoEvents
    If Timer  < t + 2 Then GoTo Delay
    For i = 0 To doc.All.length - 1
    If doc.All(i).tagName = "INPUT" Then
    '点击“百度一下”按钮
    If doc.All(i).Value = "百度一下" Then doc.All(i).Click
    End If
    Next
    t = Timer
    Delay: DoEvents
    If Timer  < t + 100 Then GoTo Delay '在这里加足够的延时,要考虑网页下载的时间与你要求停留的时间
    WebBrowser1.GoBack
    End SubPrivate Sub Form_Load()
    WebBrowser1.Navigate "http://www.baidu.com"
    End Sub 
      

  2.   

    WebBrowser1.Navigate "http://www.baidu.com"  把这个放进 command1_click()
    把command1中的事件放进webbrowser_documentcomplte
      

  3.   

    谢谢zzyong00,试了下,不出错了,但还是实现不了后退的功能!
    ----
    delay出现重定义了
      

  4.   

    你在Command1自动输入了 你好,延时两秒后点击了百度一下的按钮, 在几毫毫秒之内你马上GoBack当然出错,因为还没反应过来,无前页可退,所以你在Command1加 GoBack并不合理.'添加 Command1  Command2  Command3Dim t&
    Private Sub Form_Load()
       WebBrowser1.Navigate "http://www.baidu.com"
       Command2.Caption = "回前一页"
       Command3.Caption = "向下一页"
    End Sub
     
    Private Sub Command1_Click()
       Set doc = WebBrowser1.Document
       For i = 0 To doc.All.Length - 1
          '向文本框输入“你好”
          If doc.All(i).tagName = "INPUT" Then doc.All(i).Value = "你好": Exit For
       Next
       '故意延时两秒,让你看清是先输入再点击的
       t = Timer
       Do
          DoEvents
       Loop Until Timer >= t + 2
       For i = 0 To doc.All.Length - 1
          If doc.All(i).tagName = "INPUT" Then
             '点击“百度一下”按钮
             If doc.All(i).Value = "百度一下" Then doc.All(i).Click
          End If
       Next
       'command2_click
    End SubPrivate Sub Command2_Click()
       On Error GoTo errhandler
       WebBrowser1.GoBack
       Exit Sub
    errhandler:
       MsgBox "这是第一页无前页可退"
    End SubPrivate Sub Command3_Click()
       On Error GoTo errhandler
       WebBrowser1.GoForward
       Exit Sub
    errhandler:
       MsgBox "这是最后一页"
    End Sub
      

  5.   

    谢谢cbm666和forbearORfolie,看了大家的回复,明白了要goback要等网页全部下载完后才可以使用,请问大家,有什么办法可以让程序判断网页下载完了,然后自动后退回来,而不是手工的点击后退呢??
      

  6.   

    2F 已跟你说了,webbrowser_documentcomplte 就是网页下载完成的事件
      

  7.   

    刚查完forbearORfolie所说的webbrowser_documentcomplte的资料(刚学不久,好多都不懂,呵呵),测试成功了,谢谢大家