Други, день добрый!
Подскажите, как объединить два макроса. Оба тянут с сайта ЦБ курс бел.рубля, но первый - до 23.03.11 включительно, а второй после этой даты. Дело в том, что с этой даты поменялась разрядность соотношения рубль РФ/ рубль РБ, поэтому старый макрос стал работать некорректно для новых дат. В VBA, не шарю, только в общих чертах понимаю как это работает.
Заранее благодарю за помощь.
Sub GetBlrRub()
Dim sURI As String
Dim oHttp As Object
Dim htmlcode, outstr As String
Dim inpdate As Date
Dim d, m, y As Integer
inpdate = CDate(InputBox("Введите дату в формате ДД.ММ.ГГГГ", _
"Курс Белорусского рубля", Date))
d = Format(inpdate, "dd")
m = Format(inpdate, "mm")
y = Format(inpdate, "yyyy")
sURI = "http://cbr.ru/currency_base/daily.aspx?C_month=" & m & "&C_year=" _
& y & "&date_req=" & d & "%2F" & m & "%2F" & y
On Error Resume Next
Set oHttp = CreateObject("MSXML2.XMLHTTP")
If Err.Number <> 0 Then
Set oHttp = CreateObject("MSXML.XMLHTTPRequest")
End If
On Error GoTo 0
If oHttp Is Nothing Then
Exit Sub
End If
oHttp.Open "GET", sURI, False
oHttp.Send
htmlcode = oHttp.responseText
outstr = Mid(htmlcode, InStr(1, htmlcode, "BYR") + 98, 7)
Set oHttp = Nothing
outstr = Replace(outstr, ",", ".")
ActiveCell.Value = Val(outstr) / 1000
End Sub
Sub GetBlrRub2()
Dim sURI As String
Dim oHttp As Object
Dim htmlcode, outstr As String
Dim inpdate As Date
Dim d, m, y As Integer
inpdate = CDate(InputBox("Введите дату в формате ДД.ММ.ГГГГ", _
"Курс Белорусского рубля", Date))
d = Format(inpdate, "dd")
m = Format(inpdate, "mm")
y = Format(inpdate, "yyyy")
sURI = "http://cbr.ru/currency_base/daily.aspx?C_month=" & m & "&C_year=" _
& y & "&date_req=" & d & "%2F" & m & "%2F" & y
On Error Resume Next
Set oHttp = CreateObject("MSXML2.XMLHTTP")
If Err.Number <> 0 Then
Set oHttp = CreateObject("MSXML.XMLHTTPRequest")
End If
On Error GoTo 0
If oHttp Is Nothing Then
Exit Sub
End If
oHttp.Open "GET", sURI, False
oHttp.Send
htmlcode = oHttp.responseText
outstr = Mid(htmlcode, InStr(1, htmlcode, "BYR") + 99, 7)
Set oHttp = Nothing
outstr = Replace(outstr, ",", ".")
ActiveCell.Value = Val(outstr) / 10000
End Sub