未针对每个VBA和带有块对象变量或带有块变量的VBA设置错误91

时间:2018-11-27 19:11:38

标签: html excel vba excel-vba internet-explorer

我正在尝试使用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返回正确的字符串。关于如何解决此问题有任何想法吗?

1 个答案:

答案 0 :(得分:0)

objDoc不是导致错误的对象变量。 getElementsByName返回一个NodeList对象(Nodes的集合),getElementByName(...)(0)返回一个Node对象。那就是导致错误的对象“变量”(由于根本不是变量,所以很容易引起误解)。

@omegastripes注释来检查.length的{​​{1}}属性是正确的第一步。然后,我认为您会发现您拼错了名称,或者文档中没有使用该名称的元素。