如何解决将HTMLDocument从Sub传递给Function
我正在尝试将Sub中使用的HMTL文档引用到Function;我不断收到以下错误:
运行时错误“ 424”:
需要对象
我对VBA还是很陌生,我知道自己做错了什么,但我只是不知道怎么办。这是我的代码:
Dim ie As InternetExplorer
Function findAssetNumber(name1 As String,name2 As String,HTMLDoc As HTMLDocument)
With HTMLDoc
If Not .getElementsByName(name1)(0) Is Nothing Then
.getElementsByName(name1)(0).Value = mainSheet.Range("E19").Value
.getElementsByClassName("panelButton")(2).Click
.getElementsByClassName("rightAlign")(1).getElementsByTagName("a")(0).Click
Else
.getElementsByName("name2")(0).Value = mainSheet.Range("E19").Value
.getElementsByClassName("panelButton")(2).Click
.getElementsByClassName("rightAlign")(0).getElementsByTagName("a")(0).Click
End If
End With
End Function
Sub Ticket()
Dim HTMLDoc As HTMLDocument
Dim locationOptions As IHTMLElementCollection
Dim terminalCount As Integer
Dim termNumberShort As String
Dim termNumberLong As String
Set mainSheet = ThisWorkbook.Worksheets("HHACRMA")
Set locationSheet = ThisWorkbook.Worksheets("Location")
Set ie = New InternetExplorer
'Get terminal numbers
termNumberLong = mainSheet.Range("B3").Value
ActiveSheet.Range("A40") = termNumberLong
termNumberShort = Left(Range("A40").Value,3)
'Navigate to ticket system
With ie
.Visible = 1
.navigate "link"
Do While .Busy Or .ReadyState <> 4
DoEvents
Loop
Set HTMLDoc = ie.document
End With
'Adding the note/assets
With HTMLDoc
findAssetNumber "7.25.0.0.0.0.2.9.0.0.1.2.3.1.5.3.3.0.1.3.1.5.0.0.1.2.9.3.1.9.2.1.3.1.0.1.1.1.30.1.30.1.4.1",_
"7.25.0.0.0.0.2.7.0.0.1.4.3.1.5.3.3.0.1.3.1.5.0.0.1.2.9.3.1.9.2.1.3.1.0.1.1.1.30.1.30.1.4.1",_
HTMLDoc
End With
End Sub
我试图将Internet Explorer对象从Sub传递给Function,以使代码看起来更简洁。我试图避免在我的Sub中使用多个If / Else语句,所以我认为创建一个自动处理if / else的函数会容易得多,而且更清洁。错误指向此行:
.getElementsByName("name2")(0).Value = mainSheet.Range("E19").Value
解决方法
在函数arglist中的HTMLDoc前添加ByVal
Function findAssetNumber(name1 As String,name2 As String,ByVal HTMLDoc As HTMLDocument)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。