Следующая функция в настоящее время работает на одной из моих книг:
Public Function getConversionRate(ByVal ccy1 As String, ByVal ccy2 As String) As Double
Dim htm As Object
Set htm = CreateObject("htmlFile")
With CreateObject("msxml2.xmlhttp")
.Open "GET", "https://themoneyconverter.com/" & ccy1 & "/" & ccy2 & ".aspx", False
.send
htm.body.innerhtml = .responsetext
End With
With htm.getelementbyid("cc-ratebox")
myRate = Right(.innerText, Len(.innerText) - 10)
getConversionRate = myRate
End With
htm.Close
End Function
Пример использования:
Просто чтобы сделатьЯсно, что вышеприведенная функция использует простой XmlHttp
запрос на конкретном веб-сайте (в моем случае это https://themoneyconverter.com, пример использования https://themoneyconverter.com/EUR/USD
), а затем ищет цену конверсии соответственно в HTML-коде, полученном в ответезапрос (для этого конкретного сайта значение содержится в элементе с идентификатором cc-ratebox
).
Конечно, вы можете сделать то же самое с любым другим сайтом, все что вам нужно сделать, этоадаптировать запрос (т. е. часть .Open "GET", "your adapted link"
) и поиск вашей стоимости (т. е. часть With htm.getelementbyid("cc-ratebox")
) - поскольку этот веб-сайт предоставляет простой доступ к их значениям через XmlHttpRequest