Использование getElementsByTagName в vba возвращает ошибку объекта времени выполнения 91 или переменная блока не установлена - PullRequest
0 голосов
/ 02 мая 2018

Представьте себе следующий HTML:

            <div class="result-row">
                <div class="row">
                    <div class="col-xs-5 result-score-padding">
                        <div class="result-score" align="right">Portugal</div>
                    </div>
                    <div class="col-xs-2 result-score-padding" align="center">
                        <div class="result-score">2 - 2</div>
                    </div>
                    <div class="col-xs-5 result-score-padding">
                        <div class="result-score">Spain</div>
                    </div>
                </div>
            </div>

В приведенном ниже коде я использую getElementsByClassName в VBA для получения innerText из элементов:

Dim IE As New InternetExplorer
Dim doc As HTMLDocument
Dim i As Integer
Dim game As String

IE.navigate "https://www.example.com"
While IE.Busy Or IE.ReadyState <> 4: DoEvents: Wend
Set doc = IE.document
For i=0 To 2
    game = Trim(doc.getElementsByClassName("result-score")(i).innerText)
Next i

Однако этот код не возвращает желаемый результат, так как он возвращает объектную переменную ошибки времени выполнения 91 или не установлена ​​переменная блока

Я хочу извлечь "Португалия 2 - 2 Испания"

URL-адрес http://www.stoiximan.gr/virtuals/

1 Ответ

0 голосов
/ 04 мая 2018

Вы перезаписываете вашу переменную "игры".

Тогда вы потеряете предыдущее содержимое.

...