Ну, никак не получается у меня! Помогите пожалуйста при открытии книги в конкретный лист курсы валют запихнуть.
Сделал так, выдается ошибка:
Код |
---|
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Sheets("Курс валют").Range("B4").Value = "нет"
Sheets("Курс валют").Range("B5").Value = "нет"
Sheets("Курс валют").Range("A6", "D50").Select
' Rows("10:50").Select
Selection.Delete Shift:=xlUp
Application.Cursor = xlWait
Set xmldoc = CreateObject("msxml2.DOMDocument.6.0")
xmldoc.async = False
url_request = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=" & ActiveSheet.Range("A1")
' загружаем документ по url
If Not xmldoc.Load(url_request) = True Then
MsgBox ("Документ не загружен")
Application.Cursor = xlDefault
Exit Sub
End If
Set NodeList = xmldoc.SelectNodes("ValCurs")
Set xmlNode = NodeList.Item(0).CloneNode(True)
' ищем атрибут с датой документа (будет найден последний документ от заданной даты)
Set node_attr = xmlNode.Attributes(0)
XDate = node_attr.Value
Set NodeList = xmldoc.SelectNodes("*/Valute")
' осуществляем цикл по валютам и ищем нужную валюту
For iIndex = 0 To NodeList.Length - 1
Set xmlNode = NodeList.Item(iIndex).CloneNode(True)
Set node_attr = xmlNode.Attributes(0)
Sheets("Курс валют").Cells(iIndex + 6, "A") = iIndex + 1
Sheets("Курс валют").Cells(iIndex + 6, "B") = xmlNode.ChildNodes(3).Text
Sheets("Курс валют").Cells(iIndex + 6, "C") = node_attr.Value
Sheets("Курс валют").Cells(iIndex + 6, "D") = CDbl(xmlNode.ChildNodes(4).Text)
Next
Set xmldoc = Nothing
Application.Cursor = xlDefault
Range("B4").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],R6C2:R90C6,3,0)"
Range("B5").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],R6C2:R90C6,3,0)"
Application.ScreenUpdating = True
End Sub
|