Я пытаюсь выгрузить исторические данные (курсы валют по определенным видам) со следующего сайта: http://www.nationalbank.kz/?docid=747&switch=russian
Пробовал фунцию "From Web" в экселе, но там получилось выгрузить только текущие данные. Буду признателен если покажете пример выгрузки истоических данных.
Спасибо.
Доброго времени суток.
Я пытаюсь выгрузить исторические данные (курсы валют по определенным видам) со следующего сайта: http://www.nationalbank.kz/?docid=747&switch=russian
Пробовал фунцию "From Web" в экселе, но там получилось выгрузить только текущие данные. Буду признателен если покажете пример выгрузки истоических данных.
Посмотрел код. К сожалению, не получается применить его ...
Сейчас беру след. код за основу, и пытаюсь что-то делать ... Подсказки/советы приветствую ... Спасибо.
[vba]
Код
Sub test() Dim IE As Object Dim doc As Object Dim colTR As Object Dim colTD As Object Dim tr As Object Dim td As Object Set IE = CreateObject("InternetExplorer.Application")
Посмотрел код. К сожалению, не получается применить его ...
Сейчас беру след. код за основу, и пытаюсь что-то делать ... Подсказки/советы приветствую ... Спасибо.
[vba]
Код
Sub test() Dim IE As Object Dim doc As Object Dim colTR As Object Dim colTD As Object Dim tr As Object Dim td As Object Set IE = CreateObject("InternetExplorer.Application")
Хотелось бы выгрузить историю по всем валютам на одном листе. Немножко видоизменил ваш код:
[vba][code]Private Sub CommandButton1_Click() Dim Id As String, edate As String
edate = Format(Date, "dd\/MM\/yyyy") ' define END date format Me.Columns("A:EP").ClearContents
For i = 1 To 60 For j = 1 To 121 Step 2 Id = i ' show the currency IDs
URL = "http://www.nationalbank.kz/?docid=747&sDate=01/01/2013&edate=" & edate & _ "&idval=" & Id & "&flag=1&ok3=yes&switch=russian" ' define the URL
Hys = Get_Hys(GetHTTPResponse(URL)) ' store historicals in Hys using the Function, which takes URL address for S? Me.Cells(4, j).Resize(UBound(Hys) + 1, UBound(Hys, 2) + 1) = Hys Next j Next i
End Sub[/code][/vba]
Но почему-то перезаписывает все столбцы ...
Приветствую.
HTML код посмотрел, нашел вот эти строки где используется "rate":
Хотелось бы выгрузить историю по всем валютам на одном листе. Немножко видоизменил ваш код:
[vba][code]Private Sub CommandButton1_Click() Dim Id As String, edate As String
edate = Format(Date, "dd\/MM\/yyyy") ' define END date format Me.Columns("A:EP").ClearContents
For i = 1 To 60 For j = 1 To 121 Step 2 Id = i ' show the currency IDs
URL = "http://www.nationalbank.kz/?docid=747&sDate=01/01/2013&edate=" & edate & _ "&idval=" & Id & "&flag=1&ok3=yes&switch=russian" ' define the URL
Hys = Get_Hys(GetHTTPResponse(URL)) ' store historicals in Hys using the Function, which takes URL address for S? Me.Cells(4, j).Resize(UBound(Hys) + 1, UBound(Hys, 2) + 1) = Hys Next j Next i
edate = Format(Date, "dd\/MM\/yyyy") Id = Me.Range("I2") Me.Columns("A:EP").ClearContents URL = "http://www.nationalbank.kz/?docid=747&sDate=01/01/2013&edate=" & edate & _ "&idval=" & Id & "&flag=1&ok3=yes&switch=russian"
Hys = Get_Hys(GetHTTPResponse(URL)) Me.Range("A1").Resize(UBound(Hys) + 1, UBound(Hys, 2) + 1) = Hys For i = 1 To 59 Id = i ' show the currency IDs URL = "http://www.nationalbank.kz/?docid=747&sDate=01/01/2013&edate=" & edate & _ "&idval=" & Id & "&flag=1&ok3=yes&switch=russian" ' define the URL Hys = Get_Hys(GetHTTPResponse(URL)) ' store historicals in Hys using the Function, which takes URL address for S? Me.Cells(3, i + (i - 1) * 2) = Header(i - 1) Me.Cells(4, i + (i - 1) * 2).Resize(UBound(Hys) + 1, UBound(Hys, 2) + 1) = Hys Me.Cells(3, i + (i - 1) * 2).ColumnWidth = 12 Next i
edate = Format(Date, "dd\/MM\/yyyy") Id = Me.Range("I2") Me.Columns("A:EP").ClearContents URL = "http://www.nationalbank.kz/?docid=747&sDate=01/01/2013&edate=" & edate & _ "&idval=" & Id & "&flag=1&ok3=yes&switch=russian"
Hys = Get_Hys(GetHTTPResponse(URL)) Me.Range("A1").Resize(UBound(Hys) + 1, UBound(Hys, 2) + 1) = Hys For i = 1 To 59 Id = i ' show the currency IDs URL = "http://www.nationalbank.kz/?docid=747&sDate=01/01/2013&edate=" & edate & _ "&idval=" & Id & "&flag=1&ok3=yes&switch=russian" ' define the URL Hys = Get_Hys(GetHTTPResponse(URL)) ' store historicals in Hys using the Function, which takes URL address for S? Me.Cells(3, i + (i - 1) * 2) = Header(i - 1) Me.Cells(4, i + (i - 1) * 2).Resize(UBound(Hys) + 1, UBound(Hys, 2) + 1) = Hys Me.Cells(3, i + (i - 1) * 2).ColumnWidth = 12 Next i
Ах ... оказывается, там всего 40 валютных пар и есть пустые интервалы в порядке ID валют (например, отсутствуют 11, 19, 24, 27-38, 43, 47-49) ... За счет этого образовываются пустые колонны. Заметил я это когда запускал код, вследствие чего вышла ошибка "run time error 9 subscript out of range"
Объясните, пожалуйста, как вы Header ("1 АВСТРАЛИЙСКИЙ ДОЛЛАР", "1 ФУНТ СТЕРЛИНГОВ СОЕДИНЕННОГО КОРОЛЕВСТВА" ...) распарсировали? Я бы хотел применить такой же подход для получния Header-ов типа AUD/KZT, GBP/KZT и т. д. (например, строка class="gen7" align="center">AUD / KZT).
Порекомендуйте, пжлста, ресурсы по разборке HTML и парсинг сайтов в VBA.
Ах ... оказывается, там всего 40 валютных пар и есть пустые интервалы в порядке ID валют (например, отсутствуют 11, 19, 24, 27-38, 43, 47-49) ... За счет этого образовываются пустые колонны. Заметил я это когда запускал код, вследствие чего вышла ошибка "run time error 9 subscript out of range"
Объясните, пожалуйста, как вы Header ("1 АВСТРАЛИЙСКИЙ ДОЛЛАР", "1 ФУНТ СТЕРЛИНГОВ СОЕДИНЕННОГО КОРОЛЕВСТВА" ...) распарсировали? Я бы хотел применить такой же подход для получния Header-ов типа AUD/KZT, GBP/KZT и т. д. (например, строка class="gen7" align="center">AUD / KZT).
Порекомендуйте, пжлста, ресурсы по разборке HTML и парсинг сайтов в VBA. Guest
Если я вас правильно понял,то видео здесь в виде экзешника Остальное все опыт,метод проб и ошибок и не один год. Надо руками щупать.В книгах всего не опишут
Если я вас правильно понял,то видео здесь в виде экзешника Остальное все опыт,метод проб и ошибок и не один год. Надо руками щупать.В книгах всего не опишутdoober