VB调试下可以运行,但是编译成EXE可执行文件后在本机都无法运行

时间:2023-02-10 23:45:07
本人VB新人,所以请教下各位大师这个问题该怎么解决,

Private Sub Command1_Click()
WebBrowser1.Document.getelementbyid("submitBtn").Click
End Sub

Private Sub Command2_Click()
Dim hyvDoc, hyvTag, zyvDoc, zyvTag, hzvDoc, hzvTag, zjvDoc, zjvTag, flvDoc, flvTag, gzvDoc, gzvTag, dzvDoc, dzvTag, dhvDoc, dhvTag, xlvDoc, xlvTag '
Dim i As Integer, ii As Integer



Set hyvDoc = WebBrowser1.Document
For i = 0 To hyvDoc.All.length - 1
If UCase(hyvDoc.All(i).tagName) = "SELECT" Then
Set hyvTag = hyvDoc.All(i)
  If hyvTag.Type = "select-one" Then
  If hyvTag.id = "marriagetype" Then hyvTag.Value = 21
End If
End If
Next i
'职业
Set zyvDoc = WebBrowser1.Document
For i = 0 To zyvDoc.All.length - 1
If UCase(zyvDoc.All(i).tagName) = "SELECT" Then
Set zyvTag = zyvDoc.All(i)
  If zyvTag.Type = "select-one" Then
  If zyvTag.id = "occupation" Then zyvTag.Value = 0
End If
End If
Next i
'户主
Set hzvDoc = WebBrowser1.Document
For i = 0 To hzvDoc.All.length - 1
If UCase(hzvDoc.All(i).tagName) = "SELECT" Then
Set hzvTag = hzvDoc.All(i)
  If hzvTag.Type = "select-one" Then
  If hzvTag.id = "relation" Then hzvTag.Value = 2
End If
End If
Next i
'分离
Set flvDoc = WebBrowser1.Document
For i = 0 To flvDoc.All.length - 1
If UCase(flvDoc.All(i).tagName) = "SELECT" Then
Set flvTag = flvDoc.All(i)
  If flvTag.Type = "select-one" Then
  If flvTag.id = "separatetype" Then flvTag.Value = 8
End If
End If
Next i
'工作
Set gzvDoc = WebBrowser1.Document
For i = 0 To gzvDoc.All.length - 1
If UCase(gzvDoc.All(i).tagName) = "INPUT" Then
Set gzvTag = gzvDoc.All(i)
  If gzvTag.Type = "text" Then
  If gzvTag.id = "jobunit" Then gzvTag.Value = "无"
End If
End If
Next i
'地址
Set dzvDoc = WebBrowser1.Document
For i = 0 To dzvDoc.All.length - 1
If UCase(dzvDoc.All(i).tagName) = "INPUT" Then
Set dzvTag = dzvDoc.All(i)
  If dzvTag.Type = "text" Then
  If dzvTag.id = "jobaddress" Then dzvTag.Value = "无"
End If
End If
Next i
'联系电话
Set dhvDoc = WebBrowser1.Document
For i = 0 To dhvDoc.All.length - 1
If UCase(dhvDoc.All(i).tagName) = "INPUT" Then
Set dhvTag = dhvDoc.All(i)
  If dhvTag.Type = "text" Then
  If dhvTag.id = "phone" Then dhvTag.Value = "无"
End If
End If
Next i
'学历
Set xlvDoc = WebBrowser1.Document
For i = 0 To xlvDoc.All.length - 1
If UCase(xlvDoc.All(i).tagName) = "SELECT" Then
Set xlvTag = xlvDoc.All(i)
  If xlvTag.Type = "select-one" Then
  If xlvTag.id = "edulevel" Then xlvTag.Value = 60
End If
End If
Next i
'证件
Set zjvDoc = WebBrowser1.Document
For i = 0 To zjvDoc.All.length - 1
If UCase(zjvDoc.All(i).tagName) = "SELECT" Then
Set zjvTag = zjvDoc.All(i)
  If zjvTag.Type = "select-one" Then
  If zjvTag.id = "cardtype" Then zjvTag.Value = 1
End If
End If
Next i
End Sub

Private Sub form_load()



WebBrowser1.Navigate "http://10.10.202.135/cmis/Populate_add.action?"

End Sub

5 个解决方案

#1


看到这排版,已经没有看完它的欲望了

#2


Set hyvDoc = WebBrowser1.Document
Set flvDoc = WebBrowser1.Document
Set zjvDoc = WebBrowser1.Document
....
看到一堆这个,我晕了....

只需在WebBrowser1_documentcomplete事件中设置一个即可
比如:Set myDoc = WebBrowser1.Document

后面的hyvDoc flvDoc zjvDoc ...都使用mydoc即可

#3


另外,都知道id了,就没有必要使用循环+tagname判断了,直接这样用

mydoc.all.item("jobunit").value="无"
mydoc.all.item("phone").value="无"
.......

#4


引用 2 楼 Topc008 的回复:
Set hyvDoc = WebBrowser1.Document
Set flvDoc = WebBrowser1.Document
Set zjvDoc = WebBrowser1.Document
....
看到一堆这个,我晕了....

只需在WebBrowser1_documentcomplete事件中设置一个即可
比如:Set myDoc = WebBrowser1.Document

后面的hyvDoc flvDoc zjvDoc ...都使用mydoc即可


感谢Topc008的回复,不好意思,我是新手,不懂VB,只能照葫芦画瓢,id我知道,刚开始用调试登录的时候我是手动登录的,登录进去后点击按钮自动填写要填写的表单项目,但是导出EXE后,不能记录登录信息,导致出错,因为填写的框比较多,所以我都定义了变量,不好意思。

#5


引用 3 楼 Topc008 的回复:
另外,都知道id了,就没有必要使用循环+tagname判断了,直接这样用

mydoc.all.item("jobunit").value="无"
mydoc.all.item("phone").value="无"
.......


谢谢老师的指点,代码简短了很多,但是还是导出EXE文件运行错误‘91’,未设置对象变量或With block变量,
我是在我们单位的内网录入信息,登录都是手动登录,登录进去找到录入界面进行录入资料,因为有些选项是固定的,所以想偷懒一键把固定的选项都填了。

请教老师这改怎么办呢?

#1


看到这排版,已经没有看完它的欲望了

#2


Set hyvDoc = WebBrowser1.Document
Set flvDoc = WebBrowser1.Document
Set zjvDoc = WebBrowser1.Document
....
看到一堆这个,我晕了....

只需在WebBrowser1_documentcomplete事件中设置一个即可
比如:Set myDoc = WebBrowser1.Document

后面的hyvDoc flvDoc zjvDoc ...都使用mydoc即可

#3


另外,都知道id了,就没有必要使用循环+tagname判断了,直接这样用

mydoc.all.item("jobunit").value="无"
mydoc.all.item("phone").value="无"
.......

#4


引用 2 楼 Topc008 的回复:
Set hyvDoc = WebBrowser1.Document
Set flvDoc = WebBrowser1.Document
Set zjvDoc = WebBrowser1.Document
....
看到一堆这个,我晕了....

只需在WebBrowser1_documentcomplete事件中设置一个即可
比如:Set myDoc = WebBrowser1.Document

后面的hyvDoc flvDoc zjvDoc ...都使用mydoc即可


感谢Topc008的回复,不好意思,我是新手,不懂VB,只能照葫芦画瓢,id我知道,刚开始用调试登录的时候我是手动登录的,登录进去后点击按钮自动填写要填写的表单项目,但是导出EXE后,不能记录登录信息,导致出错,因为填写的框比较多,所以我都定义了变量,不好意思。

#5


引用 3 楼 Topc008 的回复:
另外,都知道id了,就没有必要使用循环+tagname判断了,直接这样用

mydoc.all.item("jobunit").value="无"
mydoc.all.item("phone").value="无"
.......


谢谢老师的指点,代码简短了很多,但是还是导出EXE文件运行错误‘91’,未设置对象变量或With block变量,
我是在我们单位的内网录入信息,登录都是手动登录,登录进去找到录入界面进行录入资料,因为有些选项是固定的,所以想偷懒一键把固定的选项都填了。

请教老师这改怎么办呢?