Я написал функцию, которая обновляет курсы валют в зависимости от даты и символа валюты - и это работает хорошо. Но когда я хочу изменить некоторые значения (от PLN до, например, USD) в моем рабочем листе (в определенном диапазоне), l oop вставляется (жирной линией). Более того, диапазон, в котором были сохранены обменные курсы, меняется на #ARG !. Ниже код функции и l oop:
Function PobierzKurs(kurs As String, data As Date)
Dim hReq As Object
Dim objxml As Object
Dim link As String
Dim odpowiedz As String
link = "http://api.nbp.pl/api/exchangerates/rates/a/" & kurs & "/" & Format(data, "yyyy-mm-dd") & "/?format=xml"
Set hReq = CreateObject("MSXML2.XMLHTTP")
With hReq
.Open "GET", link, False
.Send
End With
odpowiedz = hReq.ResponseText
If odpowiedz Like "*Brak danych" Then
PobierzKurs = "Brak danych"
Else
Set objxml = New MSXML2.DOMDocument60
objxml.LoadXML (odpowiedz)
PobierzKurs = objxml.DocumentElement.ChildNodes.Item(3).ChildNodes.Item(0).ChildNodes.Item(2).nodeTypedValue
PobierzKurs = CDbl(Replace(PobierzKurs, ".", ","))
End If
End Function
Dim rng As Range, r As Range, rFound As Range
Set rFound = Nothing
For Each r In Sheets("Raport").Range("K1:S5000")
If InStr(1, r.Text, "zł") > 0 Then
If rFound Is Nothing Then
Set rFound = r
Else
Set rFound = Union(rFound, r)
End If
End If
Next r
If Not rFound Is Nothing Then rFound.Select
For Each r In rFound
** r.Value = r.Value / Range("$L$14").Value**
r.NumberFormat = "#,##0.00 [$USD]"
Next r
Что действительно интересно, это работало несколько дней назад.
Снимок экрана
Снимок экрана2