我正在尝试使用VBA在Internet Explorer的网页中填充HTML表。我正在使用以下代码尝试输入一个值;这些字段具有唯一的名称:
Dim objShellWins As SHDocVw.ShellWindows
Dim objIE As InternetExplorer
Dim objDoc As Object
For Each objIE In objShellWins 'Look at IE & Windows Explorer objects in shell
With objIE
'Look for URL matching strURL
If (InStr(1, .LocationURL, [URL], vbTextCompare)) Then
Set objDoc = .Document
If (InStr(1, objDoc.Title, [Title], vbTextCompare)) Then
objDoc.getElementsByName([Name])(0).Value = "Value"
End If
End If
End With
Next
我在objDoc.getElementsByName行上收到错误91:对象变量或未设置块变量,但是objDoc.Title返回正确的字符串。关于如何解决此问题有任何想法吗?
答案 0 :(得分:0)
objDoc
不是导致错误的对象变量。 getElementsByName
返回一个NodeList
对象(Nodes
的集合),getElementByName(...)(0)
返回一个Node
对象。那就是导致错误的对象“变量”(由于根本不是变量,所以很容易引起误解)。
@omegastripes注释来检查.length
的{{1}}属性是正确的第一步。然后,我认为您会发现您拼错了名称,或者文档中没有使用该名称的元素。