Требуется помощь при следующей ошибке: «Недопустимая ссылка на следующую переменную управления» - PullRequest
0 голосов
/ 23 мая 2019

В настоящее время я пишу код на VBA, который будет извлекать информацию из Oddschecker. Осмотрев соответствующий сайт, я вижу следующее:

<table class = "eventTable"....>

    <tbody id ="t1"....>

         <tr data-bname="Competitor A", data-hcap-sort="1"

Я пытаюсь запечатлеть имя конкурента А, а также его рейтинг (как показано в data-hcap-sort).

Однако я вижу следующее сообщение об ошибке:

Ошибка выполнения 13. Несоответствие типов

Я не уверен, что использую неправильные теги / переменные или что-то простое я пропускаю.

Option Explicit

Sub ProcessHTMLPage(HTMLPage As MSHTML.HTMLDocument)

    Dim HTMLTable As MSHTML.IHTMLElement
    Dim HTMLTables As MSHTML.IHTMLElementCollection
    Dim HTMLRow As MSHTML.IHTMLElement
    Dim HTMLHCap As MSHTML.IHTMLElement

    Set HTMLTables = HTMLPage.getElementById("t1")

    For Each HTMLTable In HTMLTables
        Debug.Print HTMLTables

    For Each HTMLRow In HTMLTables.getElementsByTagName("data-bname")
        Debug.Print HTMLRow.innerText
    Next HTMLRow

    For Each HTMLHCap In HTMLTables.getElementsByTagName("data-hcap-sort")
        Debug.Print HTMLHCap.innerText
    Next HTMLHCap

 End Sub

Заранее благодарим за любую помощь. Новичок в VBA, прошу прощения за мое невежество.

1 Ответ

0 голосов
/ 23 мая 2019

«Следующая переменная управления» в этом примере foo:

For Each foo In bar
Next foo

Когда вы указываете идентификатор после Next (это необязательно), он должен точно совпадать с идентификатором переменной управления циклом.

For Each foo In Bar
Next zoo '<~ illegal

Просто удалите их все:

For Each foo In Bar
Next

Что касается ошибки несоответствия типов, я подозреваю, что это следующая строка:

Debug.Print HTMLTables

Попытка распечатать / вывести массив выдаст несоответствие типов Ошибка 13, как вы получаете. Похоже, вы имеете в виду, что быть:

Debug.Print HTMLTable

... хотя, глядя на историю изменений вашего поста , я не уверен, какой у вас сейчас реальный код.

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