关于论坛上一些关于表单的帖子我看了许多,自己试验了一下,如下:
Private Sub Form_Load()
   WebBrowser1.Navigate "http://192.168.0.8/login1.jsp"
End Sub
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
  Dim doc As IHTMLDocument2
  Set doc = WebBrowser1.Document
    doc.All.Item("USER").Value = "ncutqi"
    doc.All.Item("PASSWORD").Value = "123456"
End Sub完成后运行,在WebBrowser控件上已经看到用户名与密码已经自动填入,现在想问两个问题:
1.怎样让它自动登录?即回车?我执行setkey没有效果
2.登录完成后发现提示错误:实时错误‘91’,对象变量或with块变量未设置。希望大家能给一个解决方法,谢谢:)

解决方案 »

  1.   

    来迟了了sorry:' 程序一:从网页上精确提取数据
    '
    ' 为运行本程序,应在“菜单->工程->部件”中添加“Microsoft Internet Controls”
    ' 并在“菜单->工程->引用”中添加“Microsoft HTML Object Library”
    '
    ' 为了简洁,程序仅下载九只个股的基本信息
    Option Explicit
    Private Const Form_ID = 1
    Dim Code(9) As String
    Dim Current As Long
    Private Sub Form_Load()
      Form1.MousePointer = 11
      ' 以下是个股代码
      ' 为了程序简洁,这里仅使用九只代码。
      ' 而在真实环境中,应从数据文件中读入全部个股代码。
      Code(0) = "600001": Code(1) = "600002": Code(2) = "600003"
      Code(3) = "600005": Code(4) = "600006": Code(5) = "600007"
      Code(6) = "600008": Code(7) = "600009": Code(8) = "600010"
      Current = 0
      WebBrowser1.Navigate "www.stockstar.com.cn"   ' 起始网址
    End SubPrivate Sub WebBrowser1_DocumentComplete(ByValpDisp As Object, URL As Variant)
      Dim i, k
      Text2 = WebBrowser1.LocationURL    ' 显示当前网址
      ' 判断当前网页是否全部调入完毕
      If Not (pDisp Is WebBrowser1.Object) Then Exit Sub
      On Error Resume Next
      Select Case Text2
      Case "http://www.stockstar.com.cn/home.htm"  ' 当进入主页面时执行以下程序
       For i = 0 To WebBrowser1.Document.Forms(Form_ID).length - 1
          ' 找到代码输入框后填入个股代码
          If WebBrowser1.Document.Forms(Form_ID)(i).Name = "code" Then _
            WebBrowser1.Document.Forms(Form_ID)(i).Value = Code(Current)
          ' 在下拉式列表中进行选择
          If WebBrowser1.Document.Forms(Form_ID)(i).Name = "target" Then
            For k = 0 To WebBrowser1.Document.Forms(Form_ID)(i).length - 1
               If WebBrowser1.Document.Forms(Form_ID)(i).Options(k).Text _
                         = "个股资料" Then
                 WebBrowser1.Document.Forms(Form_ID)(i).Options(k).Selected = True
                 Exit For
               End If
            Next k
          End If
          ' 点击按钮
          If WebBrowser1.Document.Forms(Form_ID)(i).Value = " 查询 " Then _
            WebBrowser1.Document.Forms(Form_ID)(i).Click
       Next
      Case Else   ' 当进入数据页面时执行以下程序
       For i = 0 To WebBrowser1.Document.All.length - 1
          If WebBrowser1.Document.All(i).tagName = "PRE" Then
            ' 精确提取数据
            Text1 = Text1 + Code(Current) + vbCrLf + _
                    WebBrowser1.Document.All(i).innerText + vbCrLf
            Exit For
          End If
       Next
       ' 数据存盘
       Open "C:\Data2.Txt" For Append As #1
       Print #1, Text1: Text1 = "": Close #1
       ' 换下一只股票
       Current = Current + 1
       If Current >= 9 Then
         ' 上网任务完成后,应在此调用自动挂断过程。
         Form1.MousePointer = 0: MsgBox "Finished!": End
       End If
       ' 回退到主页面,查询下一只股票的信息
       WebBrowser1.GoBack
      End Select
    End Sub 
      

  2.   

    感谢楼上老兄,从中得到怎样登陆的启示,不过为什么我的程序运行后会提示实时错误‘91’,对象变量或with块变量未设置呢?
      

  3.   

    真的,谁能帮帮我呀,我可以把原程序给他分析一下,大家留下信箱好吗?我的QQ36534399,email:[email protected]谢谢大家