关于论坛上一些关于表单的帖子我看了许多,自己试验了一下,如下:
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块变量未设置。希望大家能给一个解决方法,谢谢:)
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块变量未设置。希望大家能给一个解决方法,谢谢:)
'
' 为运行本程序,应在“菜单->工程->部件”中添加“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