Цитата |
---|
KVArus написал: в некоторые дни курс юаня завышен на один порядок, пример |
Курс не завышен, а указан за разное количество единиц: 12.05.22 - за один CNY, а 13.05.22 за 10 CNY
Кроме того, курс рупии у ЦБР указан, за 100 INR
Для получения курса нужной валюты с сайта ЦБР для себя использую небольшую UDF, можно указывать нужную валюту и дату
Возвращает курс за единицу валюты
Код |
---|
Function GetRate(ByVal CurrencyName As String, Optional ByVal RateDate As Date) As Double
Dim i As Long, xmldoc, nodeList, xmlNode
On Error Resume Next
If Len(CurrencyName) <> 3 Then Exit Function Else CurrencyName = UCase(CurrencyName)
If RateDate = 0 Then RateDate = Date
Set xmldoc = CreateObject("Msxml.DOMDocument"): xmldoc.async = False
If Not xmldoc.Load("http://www.cbr.ru/scripts/XML_daily.asp?date_req=" & Format(RateDate, "dd\/mm\/yyyy")) Then Exit Function
Set nodeList = xmldoc.SelectNodes("//Valute")
For i = 0 To nodeList.Length - 1
Set xmlNode = nodeList.Item(i)
If xmlNode.ChildNodes(1).Text = CurrencyName Then
GetRate = CDbl(xmlNode.ChildNodes(4).Text) / Val(xmlNode.ChildNodes(2).Text)
Exit Function
End If
Next i
End Function |