Вы здесь: ГлавнаяПрактика МСФОЭксель для финансистаФормулы: берут курс доллара и евро с сайта ЦБ за любую дату

Формулы: берут курс доллара и евро с сайта ЦБ за любую дату

Excel позволяет создавать пользовательские функции. Вот один из примеров.

Очень удобно: можно выгружать курс доллара или евро не заходя на сайт за любой день, а протянув функцию можно выгрузить за любой период.

Работает как функция =USDtoRUB(дата в обычном формате).

                                          =EURtoRUB(дата в обычном формате).

usd eur cb

Чтобы функция работала в другом вашем файле, нажимаем « Alt + F11». Потом слева в панели отыскать ваш файл, открыть «Module 1» (если нет модулей – вверху слева около значка excel выбрать «Insert module») и туда скопировать вот это:

Function USDtoRUB(Conversion_date)

    Dim xmldoc, nodeList

    On Error Resume Next

    Set xmldoc = CreateObject("Msxml.DOMDocument"): xmldoc.async = False

    If Not xmldoc.Load("http://www.cbr.ru/scripts/XML_daily.asp?date_req=" & _

        Format(Conversion_date, "dd\/mm\/yyyy")) Then Exit Function

    Set nodeList = xmldoc.SelectNodes("//Valute[@ID='R01235']")

    If nodeList.Length Then USDtoRUB = CDbl(nodeList.Item(0).ChildNodes(4).Text)

End Function

Function EURtoRUB(Conversion_date)

    Dim xmldoc, nodeList

    On Error Resume Next

    Set xmldoc = CreateObject("Msxml.DOMDocument"): xmldoc.async = False

    If Not xmldoc.Load("http://www.cbr.ru/scripts/XML_daily.asp?date_req=" & _

        Format(Conversion_date, "dd\/mm\/yyyy")) Then Exit Function

    Set nodeList = xmldoc.SelectNodes("//Valute[@ID='R01239']")

    If nodeList.Length Then EURtoRUB = CDbl(nodeList.Item(0).ChildNodes(4).Text)

End Function

 

Потом: сохранить файл как Excel Macro enabled workbook (книга с поддержкой макросов).

Скачать уже готовую книгу здесь