求助,vba错误:运行时错误91:对象变量或with变量未设置

daiyunmou 2019-07-05 09:36:54
学习vba时,遇到一个小问题,再网上找了很久都没能找到解决办法,发帖求助。代码如下,
Private Sub Workbook_Open()
' On Error GoTo Err_handle
'
'填入网页
'
'
Dim k As Integer
k = 1
Dim myIE As InternetExplorerMedium
'第一列不为空,即id不为空
'cells(行,列),都是从1开始
Set sht = ThisWorkbook.Worksheets("sheet1")
Set myIE = New InternetExplorerMedium
Do While sht.Cells(k, 1) <> ""
x = sht.Cells(k, 10)
'不为Y,就执行
If x <> "Y" Then

With myIE
.Visible = True
.Navigate "网址"
End With

'页面加载完成才执行接下来的语句

With myIE
While .ReadyState <> 4 Or .Busy
DoEvents
Wend
.Document.getElementById("userid").Value = "KNET"
.Document.getElementById("pwd").Value = "123456"
.Document.getElementsByName("Submit")(0).Click
While .ReadyState <> 4 Or .Busy
DoEvents
Wend
Application.Wait Now + TimeValue("0:00:01")
.Document.getElementsByName("S_SITE_SELF_SERVICE")(0).Click
While .ReadyState <> 4 Or .Busy
DoEvents
Wend
Application.Wait Now + TimeValue("0:00:01")
.Document.getElementsByName("S_SITE_ABSENCE")(0).Click
While .ReadyState <> 4 Or .Busy
DoEvents
Wend
Application.Wait Now + TimeValue("0:00:01")
.Document.getElementsByName("S_ABSBL_CN_GBL")(0).Click
While .ReadyState <> 4 Or .Busy
DoEvents
Wend

myIE.Document.getElementById("S_ABSBL_SRCH_VW_EMPLID").Value = sht.Cells(k, 1)

While .ReadyState <> 4 Or .Busy
DoEvents
Wend
Application.Wait Now + TimeValue("0:00:03")
.Quit
End With
'填写完毕就设置为Y
' sht.Cells(k, 10).Value = "Y"
End If
k = k + 1
Loop
MsgBox "finish"

Err_handle:
If Err.Description <> "" Then
MsgBox Err.Description
End If

End Sub

调试的时候发现是黑体的地方出的问题,希望各位大佬帮我看看
...全文
1079 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
milaoshu1020 2019-07-08
  • 打赏
  • 举报
回复
你可以跟踪,监视一下变量,看看哪个变量是Nothing,我估计
myIE.Document.getElementById("S_ABSBL_SRCH_VW_EMPLID")
这个是Nothing;
daiyunmou 2019-07-08
  • 打赏
  • 举报
回复
引用 2 楼 milaoshu1020 的回复:
欠扁->前边;

因为前面的没有ID。
milaoshu1020 2019-07-07
  • 打赏
  • 举报
回复
欠扁->前边;
milaoshu1020 2019-07-07
  • 打赏
  • 举报
回复
看你欠扁都用的getElementsByName,怎么这句改成getElementById了?

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧