Вот общий способ распечатать всю таблицу HTML на листе:
Sub ScrapeContainerInfo()
Dim req As New WinHttpRequest
Dim doc As New HTMLDocument
Dim div As HTMLDivElement
Dim table As HTMLTable
Dim tableRow As HTMLTableRow
Dim tableCell As HTMLTableCell
Dim sht As Worksheet
Dim i As Long, j As Long
Dim url As String, containerNumber As String, reqBody As String
Set sht = ThisWorkbook.Worksheets("Sheet2")
containerNumber = "TCNU4171692"
url = "http://www.concorindia.com/containerquery.aspx"
reqBody = "__VIEWSTATE=%2FwEPDwULLTE1Njk0Mzk4MzkPZBYCAgoPZBYEAgEPDxYCHgdWaXNpYmxlaGRkAgMPZBYEAgMPEGRkFgFmZAIFDw9kFgIeB29uY2xpY2sFIWphdmFzY3JpcHQ6ZXJyPXRlc3QoKTtyZXR1cm4gZXJyO2RkS1KgJsS2Kb22YOy%2FEN0XTBRc8lY%3D&__EVENTVALIDATION=%2FwEWBgKk%2BrO6AwKhk42ICgKmqIGHDAKbyfWzBQLvyamyBQKxlra5AfFIxQQ%2BvdUNsDciaOk4g0LyycSG&contno=" & containerNumber & "&drpimpexp=Any&CONTButton1=Submit+Query"
With req
.Open "POST", url, False
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
.send reqBody
doc.body.innerHTML = .responseText
End With
Set div = doc.getElementById("PPosition")
Set table = div.getElementsByTagName("table")(0)
i = 1
For Each tableRow In table.Rows
i = i + 1
j = 1
For Each tableCell In tableRow.Cells
j = j + 1
sht.Cells(i, j) = tableCell.innerText
Next tableCell
Next tableRow
End Sub
Использованные ссылки: Microsoft HTML Object Library
и Micrsoft WinHTTP Services Version 5.1
Вывод выглядит так:
![enter image description here](https://i.stack.imgur.com/E2xMh.jpg)
Теперь, если вы хотите получить доступ к информации таблицы более целенаправленно, вы можете сделать это следующим образом:
Debug.Print table.Rows(1).Cells(0).innerText
Приведенный выше код печатает первую ячейку второй строки таблицы в ближайшем окне. Вы можете изменить его соответствующим образом, чтобы получить доступ к любой ячейке, помня, что индекс начинается с 0
.
EDIT
Я ошибочно подумал, что получение фактического HTML-ответа не было проблемой, но, поскольку это, очевидно, так, я обновил код, включив в него HTTP-запрос, который необходимо отправить. Я избегаю использования IE, когда это возможно.
Я жестко запрограммировал один конкретный номер контейнера. Это можно легко изменить, чтобы пройтись по нескольким номерам контейнеров.