,请帮写下从EXCEL中提取数据后按序依次填写网页的语句!
求助,请帮写下从EXCEL中提取数据后按序依次填写网页的语句!!
需要从EXCELL中提取数据后在WebBrowser中的网页A中输入第一行数据,进行简单的填写后提交,它会变成网页B,在网页B中再点一下某按钮,然后再GoBack到网页A中,进行第一行数据,主要是要循环,我怎么也调试不好,问题多多,大家给指导下
Private Sub Form_Load()
WebBrowser1.Navigate "http://192.168.1.1"
End Sub
Private Sub WebBrowser1_DocumentComplete(ByVal Text As String)
Dim ex As Object
Dim wb As Object
Dim sh As Object
Set ex = CreateObject("Excel.Application")
Set wb = ex.Workbooks.Open("c:\1.xls") '打开你的EXCEL文件
Set sh = wb.Sheets(1) '指定工作表sheets1
For i = 1 To 20
If WebBrowser1.LocationURL = "http://192.168.1.1/" Then
WebBrowser1.Document.getelementbyid("TextBox2").Value = sh.cells(i, 1)
WebBrowser1.Document.getelementbyid("TextBox1").Value = sh.cells(i, 2)
WebBrowser1.Document.getelementbyid("Button1").Click
Else
WebBrowser1.Document.getelementbyid("Button2").Click
WebBrowser1.GoBack
End If
Next
ex.Visible = True
Set ex = Nothing
Set wb = Nothing
Set sh = Nothing
End Sub
这样后,他总是只填写最后一个i=20时的数据,别的不填,并且进程里EXCELL的时程N多(这个我估计是因为每次网页数据下载结束他就打开一个新的EXCELL进程,把打开进程写进FORM——LOAD里它又不运行了,[如果把结束EXCEL进程的语句写在ELSE前,又会出现什么情况?还没试过,发贴时才想起来]),请教下大家,这个读EXCEL数据的句子应该怎么写,最好大家给个例子
------解决方案--------------------
很显然,楼主你还没做好流程设计就急匆匆地投入到编码工作中去了,结果搞得自己比较郁闷.显然你这个功能需求不能都挤在一个函数里实现的!
我先说说你连接Excel的事吧,你这是要通过Webbrowser控件循环提交,不应把连接Excel的代码写在WebBrowser1_DocumentComplete事件中
注意,把fExcelApp定义为模块级的
需要从EXCELL中提取数据后在WebBrowser中的网页A中输入第一行数据,进行简单的填写后提交,它会变成网页B,在网页B中再点一下某按钮,然后再GoBack到网页A中,进行第一行数据,主要是要循环,我怎么也调试不好,问题多多,大家给指导下
Private Sub Form_Load()
WebBrowser1.Navigate "http://192.168.1.1"
End Sub
Private Sub WebBrowser1_DocumentComplete(ByVal Text As String)
Dim ex As Object
Dim wb As Object
Dim sh As Object
Set ex = CreateObject("Excel.Application")
Set wb = ex.Workbooks.Open("c:\1.xls") '打开你的EXCEL文件
Set sh = wb.Sheets(1) '指定工作表sheets1
For i = 1 To 20
If WebBrowser1.LocationURL = "http://192.168.1.1/" Then
WebBrowser1.Document.getelementbyid("TextBox2").Value = sh.cells(i, 1)
WebBrowser1.Document.getelementbyid("TextBox1").Value = sh.cells(i, 2)
WebBrowser1.Document.getelementbyid("Button1").Click
Else
WebBrowser1.Document.getelementbyid("Button2").Click
WebBrowser1.GoBack
End If
Next
ex.Visible = True
Set ex = Nothing
Set wb = Nothing
Set sh = Nothing
End Sub
这样后,他总是只填写最后一个i=20时的数据,别的不填,并且进程里EXCELL的时程N多(这个我估计是因为每次网页数据下载结束他就打开一个新的EXCELL进程,把打开进程写进FORM——LOAD里它又不运行了,[如果把结束EXCEL进程的语句写在ELSE前,又会出现什么情况?还没试过,发贴时才想起来]),请教下大家,这个读EXCEL数据的句子应该怎么写,最好大家给个例子
------解决方案--------------------
很显然,楼主你还没做好流程设计就急匆匆地投入到编码工作中去了,结果搞得自己比较郁闷.显然你这个功能需求不能都挤在一个函数里实现的!
我先说说你连接Excel的事吧,你这是要通过Webbrowser控件循环提交,不应把连接Excel的代码写在WebBrowser1_DocumentComplete事件中
注意,把fExcelApp定义为模块级的
- VB code
Option Explicit Private fExcelApp As Object Private Sub Form_Load() 'WebBrowser1.Navigate "http://192.168.1.1" Set fExcelApp = ConnectExcelApp() If (fExcelApp Is Nothing) Then MsgBox "连接Excel失败,此功能无法正常运行" End If End Sub '--------------------------------------------------- ' 过程名 : ConnectExcelApp ' 时间 : 2010-3-7 12:10 ' 作者 : 杨过.网狐.cn ' 功能 : ' 说明 : 连接失败返回Nothing,成功则返回Excel.Application对象 '--------------------------------------------------- ' Private Function ConnectExcelApp() As Object On Error GoTo GetObject_Error Set ConnectExcelApp = GetObject(, "Excel.Application") On Error GoTo 0 Exit Function '得到Excel对象,退出 GetObject_Error: ' On Error GoTo 0 On Error GoTo CreateObject_Error Set ConnectExcelApp = CreateObject("Excel.Application") Exit Function '得到Excel对象,退出 CreateObject_Error: Set ConnectExcelApp = Nothing ' MsgBox "错误 " & Err.Number & " (" & Err.Description & ") in procedure TestExcelWeb of Form Form1" End Function
------解决方案--------------------
代码及错误处理的情况已经给你写好,没必要再修改了。不要这个可以,那样代码不够明确,呵呵。