Есть ли способ загрузить строку таблицы или всю таблицу на веб-странице с помощью VBA? - PullRequest
0 голосов
/ 23 сентября 2019

Я могу загрузить внутренний текст, но не точную таблицу

Я попытался использовать внутренний текст, и он дал только текст всей строки

    Private Sub CommandButton1_Click()
        Dim i As Integer
        Dim IE As New SHDocVw.InternetExplorer
        Dim HTMLDoc As MSHTML.HTMLDocument
        Dim HTMLInput As MSHTML.IHTMLElement
        Dim HTMLAs As MSHTML.IHTMLElementCollection
        Dim HTMLA As MSHTML.IHTMLElement

        Dim tdocs As Object

        Dim iframeDoc As MSHTML.HTMLDocument

        IE.Visible = True
        IE.navigate "https://portal.3gpp.org/#55931-tdocs"



        Do While IE.ReadyState <> READYSTATE_COMPLETE
        Loop

        Set HTMLDoc = IE.Document

        Set tdocs = HTMLDoc.getElementsByName("lt-55931-tdocs")
        tdocs(0).Click

       Set iframeDoc = HTMLDoc.frames("dnn_ctr559_View_ctl00_ctl01_ctr596_ETSIFrame_htmModule").Document

Dim img As MSHTML.IHTMLElement
Set img = iframeDoc.getElementById("btnSearch")
    img.Click

   Application.Wait (Now + TimeValue("0:00:59")) '30sec
End If

For i = 1 To 2000
 Set img = iframeDoc.getElementById("rgTdocList_ctl00__" & i)

 Range("A" & i) = img.innerText

    End Sub

Я получаюстрока в одном столбце, но я хочу, чтобы они были такими, какие они есть на веб-странице

1 Ответ

2 голосов
/ 23 сентября 2019

Вы можете сделать что-то вроде этого:

'...
'...
Application.Wait (Now + TimeValue("0:00:30")) '30sec

Dim tds, x

For i = 1 To 2000
    Set img = iframeDoc.getElementById("rgTdocList_ctl00__" & i)
    If img Is Nothing Then Exit For 'no more rows
    Set tds = img.getElementsByTagName("td") '<< get cells for this row
    'write out each cell's content
    For x = 0 To tds.Length - 1
        Cells(i, x + 1) = tds(x).innerText
    Next x
Next i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...