Получить тд элементы на веб-странице - PullRequest
0 голосов
/ 28 июня 2019

Я работаю над макросом Excel и пытаюсь получить элементы в элементах td в Excel.Однако в HTML-коде нет идентификатора td, из-за которого я потерялся.

HTML-код

<Tbody>

<Tr class = rptodd><td>1.</td> <td></td><td></td><td></td><td>Apple</td><td>200</td></tr>


<Tr class = rpteven><td>2.</td> <td></td><td></td><td></td><td>Orange</td><td>500</td></tr>

VBA-код

Set doc = ie.document
Set colTR = doc.getelementsbytagname("table")

For each tr in in colTR 
    ThisWorkbook.worksheets("Sheet1").range("A1").value = tr.innertext

Я знаю, что мои коды неверныили как-то не актуально.Может ли кто-нибудь направить меня для правильного пути?

Я хочу получить значение яблока в A1 sheet1, которое равно 200, и значение оранжевого 500 в A2

1 Ответ

0 голосов
/ 28 июня 2019

Как сказал @JNevill, получите все теги td. Затем вы можете зациклить их, и если у них есть innerText, которые вы ищете (Apple и Orange), то вы можете получить innerText из nextElementSibiling.

Я сделал это ниже с использованием позднего связывания с использованием Variant, но предложил бы сделать это с ранним связыванием.

Также я использовал оператор Case, но вы также можете использовать стандартный оператор If.

' Get all the `td` tags
Dim tableDataNodes As Variant
Set tableDataNodes = Ie.Document.getElementsByTagName("td")

Dim dataNode As Variant
For Each dataNode In tableDataNodes

    ' See if innerText of `td` is a value you are looking for.
    Dim fruitValue As String
    Select Case dataNode.innerText
        Case "Apple"

            ' Get the text of the next sibiling
            fruitValue = dataNode.nextElementSibling.innerText

            ' Add value to range or whatever you want to do with it.
            ThisWorkbook.worksheets("Sheet1").range("A1").value = fruitValue

        Case "Orange"

            ' Get the text of the next sibiling
            fruitValue = dataNode.nextElementSibling.innerText

            ' Add value to range or whatever you want to do with it.
            ThisWorkbook.worksheets("Sheet1").range("A2").value = fruitValue

    End Select

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