Ребята, подскажите такую штуку. Нашёл макрос на курс валют с ЦБ, на моей домашней версии он работает на ура, на работе же он почему то ставит другие десятичные разделители...Например дома курс доллара 67.777 а на работе 6.777,777
Как то вляет на это версия exel? я перерыл там все настройки так и не смог разобраться в чем дело.
Ребята, подскажите такую штуку. Нашёл макрос на курс валют с ЦБ, на моей домашней версии он работает на ура, на работе же он почему то ставит другие десятичные разделители...Например дома курс доллара 67.777 а на работе 6.777,777
Как то вляет на это версия exel? я перерыл там все настройки так и не смог разобраться в чем дело.rebus
знать бы в каком направлении копать. я пытался и макрос сам менять... [moder]Вот эти 2 строки нужно было в теги всунуть. Поправил Вам, поскольку Вы сейчас уже не сможете - сутки прошли[/moder] [vba]
[/vba] игрался с числами вот этими...всё равно он ставит разделители не так. В какую сторону думать?
[vba]
Код
Function GetRate(ByVal CurrencyName As String, ByVal RateDate As Date) As Single
On Error Resume Next CurrencyName = UCase(CurrencyName): If Len(CurrencyName) <> 3 Then Exit Function Set xmldoc = CreateObject("Msxml.DOMDocument"): xmldoc.async = False url_request = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=" + Format(RateDate, "dd\/mm\/yyyy")
If xmldoc.Load(url_request) <> True Then Exit Function ' Ýòî Çàïðîñ ê ñåðâåðó ÖÁ
Set nodeList = xmldoc.SelectNodes("ValCurs"): Set xmlNode = nodeList.Item(0).CloneNode(True) Set node_attr = xmlNode.Attributes(0): strDate = node_attr.Value Set nodeList = xmldoc.SelectNodes("*/Valute") For I = 0 To nodeList.Length - 1 Set xmlNode = nodeList.Item(I).CloneNode(True) If xmlNode.ChildNodes(1).Text = CurrencyName Then CurrencyRate = CDbl(xmlNode.ChildNodes(4).Text) divisor = Val(xmlNode.ChildNodes(2).Text) GetRate = CurrencyRate / divisor Exit Function End If Next End Function
[/vba]
знать бы в каком направлении копать. я пытался и макрос сам менять... [moder]Вот эти 2 строки нужно было в теги всунуть. Поправил Вам, поскольку Вы сейчас уже не сможете - сутки прошли[/moder] [vba]
[/vba] игрался с числами вот этими...всё равно он ставит разделители не так. В какую сторону думать?
[vba]
Код
Function GetRate(ByVal CurrencyName As String, ByVal RateDate As Date) As Single
On Error Resume Next CurrencyName = UCase(CurrencyName): If Len(CurrencyName) <> 3 Then Exit Function Set xmldoc = CreateObject("Msxml.DOMDocument"): xmldoc.async = False url_request = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=" + Format(RateDate, "dd\/mm\/yyyy")
If xmldoc.Load(url_request) <> True Then Exit Function ' Ýòî Çàïðîñ ê ñåðâåðó ÖÁ
Set nodeList = xmldoc.SelectNodes("ValCurs"): Set xmlNode = nodeList.Item(0).CloneNode(True) Set node_attr = xmlNode.Attributes(0): strDate = node_attr.Value Set nodeList = xmldoc.SelectNodes("*/Valute") For I = 0 To nodeList.Length - 1 Set xmlNode = nodeList.Item(I).CloneNode(True) If xmlNode.ChildNodes(1).Text = CurrencyName Then CurrencyRate = CDbl(xmlNode.ChildNodes(4).Text) divisor = Val(xmlNode.ChildNodes(2).Text) GetRate = CurrencyRate / divisor Exit Function End If Next End Function
Попробуйте Replace И засуньте код макроса в предыдущем сообщении в теги - в режиме правки поста выделите код и нажмите кнопку # на панельке выше
Попробуйте Replace И засуньте код макроса в предыдущем сообщении в теги - в режиме правки поста выделите код и нажмите кнопку # на панельке выше_Boroda_