VBA для каждого и с переменной объекта блока или с переменной блока не установлено Ошибка 91 - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь использовать VBA для заполнения таблицы HTML на веб-странице в Internet Explorer.Я использую следующий код, чтобы попытаться ввести одно значение;поля имеют уникальные имена:

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

Я получаю сообщение об ошибке 91: переменная объекта или переменная блока не задана в строке objDoc.getElementsByName, но objDoc.Title возвращает правильную строку.Любые мысли о том, как я могу это исправить?

1 Ответ

0 голосов
/ 27 ноября 2018

objDoc не является переменной объекта, вызывающей ошибку.getElementsByName возвращает объект NodeList (набор Nodes), а getElementByName(...)(0) возвращает объект Node.Это объект «переменная», который вызывает ошибку (очень обманчиво, поскольку это вообще не переменная). Комментарий

@ omegastripes для проверки правильности .length свойства NodeList - первый правильный шаг.Тогда я думаю, вы обнаружите, что вы либо неправильно написали имя, либо в документе нет элемента с таким именем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...