Вы можете использовать следующее. Он использует XMLHTTP в качестве более быстрого метода поиска. Объединяет вчерашнюю дату в URL, чтобы получить последние оценки. Алфавитная таблица выбирается по имени класса и позиции индекса.
Option Explicit
Public Sub GetTable()
Dim sResponse As String, html As HTMLDocument, ws As Worksheet, clipboard As Object
Set ws = ThisWorkbook.Worksheets("Sheet1")
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", "https://www.x-rates.com/historical/?from=CAD&amount=1&date=" & Format$(Date - 1, "yyyy-mm-dd"), False
.setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"
.send
sResponse = StrConv(.responseBody, vbUnicode)
End With
Set clipboard = GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
Set html = New HTMLDocument
With html
.body.innerHTML = sResponse
clipboard.SetText .querySelectorAll(".ratesTable").item(1).outerHTML
clipboard.PutInClipboard
End With
ws.Cells(1, 1).PasteSpecial
End Sub
Ссылки (VBE> Инструменты> Ссылки):
- Библиотека объектов Microsoft HTML