Вытягивание таблиц с веб-сайта в Excel VBA - PullRequest
0 голосов
/ 31 октября 2019

Так что мне нужно создать макрос для извлечения некоторых таблиц с веб-сайта, а затем сделать его фильтруемым на стороне пользователя через некоторые заранее определенные категории. Я определил, что наилучшим способом сделать это (или, по крайней мере, так, как я понимаю, лучше всего) является метод get winhttp, поскольку у меня есть идентификаторы таблиц, которые довольно легко получить через исходную страницу веб-страницы, которые остаются согласованными.

Тем не менее, я довольно новичок в кодировании на VBA и пришел к этому с точки зрения человека, который в основном работал в HTML5 и javascript, поэтому я пытаюсь получить общее представление о том, как я могухочу, чтобы мой код выглядел как формат с точки зрения начальных запросов на получение и заполнение.

1 Ответ

0 голосов
/ 31 октября 2019

Вот пример общего примера кода, который вам нужен.

Sub Yahoo_BS()

Dim xmlHttp As Object
Dim TR_col As Object, Tr As Object
Dim TD_col As Object, Td As Object
Dim row As Long, col As Long

    Set xmlHttp = CreateObject("MSXML2.XMLHTTP.6.0")
    myURL = "https://finance.yahoo.com/quote/SBUX/balance-sheet?p=SBUX"
    xmlHttp.Open "GET", myURL, False
    xmlHttp.setRequestHeader "Content-Type", "text/xml"
    xmlHttp.send

    Dim html As Object
    Set html = CreateObject("htmlfile")
    html.body.innerHTML = xmlHttp.responseText

    Dim tbl As Object
    Set tbl = html.getElementById("Pos(r)")


    row = 1
    col = 1

    Set TR_col = html.getElementsByTagName("TR")
    For Each Tr In TR_col
        Set TD_col = Tr.getElementsByTagName("TD")
        For Each Td In TD_col
            Cells(row, col) = Td.innerText
            col = col + 1
        Next
        col = 1
        row = row + 1
    Next

End Sub

Примечание: вам нужно установить ссылку на Microsoft Internet Controls и Microsoft HTML Object Library.

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