#excel #vba
#excel #vba
Вопрос:
Я использую код в книге, но я делаю новый проект, я хочу повторно использовать код, я копирую и вставляю его. Но у меня есть это сообщение об ошибке :
Не найден метод или элемент данных
Код выглядит следующим образом, и он выделяет это :
ставки.Добавьте преобразование.Val(node.getAttribute(«курс»)), node.getAttribute(«валюта»)
Я не понимаю, почему значение val выделено в моей новой книге, но не в моей предыдущей.
Я прошу вашей помощи 🙂
Public Function ConvCurrency(Value As Double, fromSymbol As String, toSymbol As String)
Static rates As Collection, expiration As Date ' cached / keeps the value between calls '
If fromSymbol = "SAR" Then
ConvCurrency = Value * 0.2
Else:
If DateTime.Now > expiration Then
Dim xhr As Object, node As Object
expiration = DateTime.Now DateTime.TimeSerial(1, 0, 0) ' 1 hour '
Set rates = New Collection
rates.Add 1#, "EUR"
Set xhr = CreateObject("msxml2.xmlhttp")
xhr.Open "GET", "https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml", False
xhr.send
For Each node In xhr.responseXML.SelectNodes("//*[@rate]")
rates.Add Conversion.Val(node.getAttribute("rate")), node.getAttribute("currency")
Next
End If
ConvCurrency = (Value / rates(fromSymbol)) * rates(toSymbol)
End If
End Function
Комментарии:
1. Что произойдет, если вы используете
VBA.Conversion.Val
?2. Спасибо, БигБен, это работает. Не могли бы вы объяснить мне, чего мне не хватало. Раньше это работало, и теперь мне нужно использовать VBA. Почему это так?
3. Что-то еще (другая библиотека, возможно, один из ваших модулей) затеняет
Conversion
… обычно используется только одинVal
, или вы можете использовать весьVBA.Conversion.Val
.