Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Выгрузка данных с сайта сю VBA - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Выгрузка данных с сайта сю VBA
Guest Дата: Четверг, 06.11.2014, 06:34 | Сообщение № 1
Группа: Гости
Доброго времени суток.

Я пытаюсь выгрузить исторические данные (курсы валют по определенным видам) со следующего сайта: http://www.nationalbank.kz/?docid=747&switch=russian

Пробовал фунцию "From Web" в экселе, но там получилось выгрузить только текущие данные. Буду признателен если покажете пример выгрузки истоических данных.

Спасибо.
 
Ответить
СообщениеДоброго времени суток.

Я пытаюсь выгрузить исторические данные (курсы валют по определенным видам) со следующего сайта: http://www.nationalbank.kz/?docid=747&switch=russian

Пробовал фунцию "From Web" в экселе, но там получилось выгрузить только текущие данные. Буду признателен если покажете пример выгрузки истоических данных.

Спасибо.

Автор - Guest
Дата добавления - 06.11.2014 в 06:34
Guest Дата: Четверг, 06.11.2014, 08:32 | Сообщение № 2
Группа: Гости
Кто-нибудь помогите, пожалуйста.
 
Ответить
СообщениеКто-нибудь помогите, пожалуйста.

Автор - Guest
Дата добавления - 06.11.2014 в 08:32
alex77755 Дата: Четверг, 06.11.2014, 09:26 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

Попадалось решение не с этого сайта, но принцип можно посмотреть.
К сообщению приложен файл: ____ru.investin.rar (14.6 Kb)


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
СообщениеПопадалось решение не с этого сайта, но принцип можно посмотреть.

Автор - alex77755
Дата добавления - 06.11.2014 в 09:26
Guest Дата: Четверг, 06.11.2014, 10:48 | Сообщение № 4
Группа: Гости
О, спасибо. Посмотрю.
 
Ответить
СообщениеО, спасибо. Посмотрю.

Автор - Guest
Дата добавления - 06.11.2014 в 10:48
Guest Дата: Четверг, 06.11.2014, 14:47 | Сообщение № 5
Группа: Гости
Посмотрел код. К сожалению, не получается применить его ...

Сейчас беру след. код за основу, и пытаюсь что-то делать ... Подсказки/советы приветствую ...
Спасибо.

[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")

IE.Visible = True
IE.Navigate "http://www.nationalbank.kz/?docid=747&switch=russian"

Do Until IE.ReadyState = 4: DoEvents: Loop

Set doc = IE.Document

Set colTR = doc.GetElementsByTagName("TR")

For Each tr In colTR

Set colTD = tr.GetElementsByTagName("TD")

For Each td In colTD
MsgBox td.innertext

Next td

Next tr

IE.Quit

End Sub
[/vba]
 
Ответить
СообщениеПосмотрел код. К сожалению, не получается применить его ...

Сейчас беру след. код за основу, и пытаюсь что-то делать ... Подсказки/советы приветствую ...
Спасибо.

[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")

IE.Visible = True
IE.Navigate "http://www.nationalbank.kz/?docid=747&switch=russian"

Do Until IE.ReadyState = 4: DoEvents: Loop

Set doc = IE.Document

Set colTR = doc.GetElementsByTagName("TR")

For Each tr In colTR

Set colTD = tr.GetElementsByTagName("TD")

For Each td In colTD
MsgBox td.innertext

Next td

Next tr

IE.Quit

End Sub
[/vba]

Автор - Guest
Дата добавления - 06.11.2014 в 14:47
doober Дата: Четверг, 06.11.2014, 17:02 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 971
Репутация: 333 ±
Замечаний: 0% ±

Excel 2010
Так должно работать?
К сообщению приложен файл: rate.xlsm (41.4 Kb)


 
Ответить
СообщениеТак должно работать?

Автор - doober
Дата добавления - 06.11.2014 в 17:02
Guest Дата: Пятница, 07.11.2014, 06:45 | Сообщение № 7
Группа: Гости
Благодарю за помощь, Сергей.

Да, код должен работать примерно так. Я попробую модифицировать его, чтобы получить таблицу в формате:

Дата RUB USD EUR GBP
01.01.2013 4,96 150,74 199,22 243,72
02.01.2013 4,96 150,74 199,22 243,72
03.01.2013 4,96 150,74 199,22 243,72
04.01.2013 4,99 150,37 197,96 244,20
05.01.2013 4,96 150,59 195,99 241,70

и добавить фунцию, где можно указать временной период (start date: dd/mm/yyyy, end date: dd/mm/yyyy

Еще раз спасибо огромное.
 
Ответить
СообщениеБлагодарю за помощь, Сергей.

Да, код должен работать примерно так. Я попробую модифицировать его, чтобы получить таблицу в формате:

Дата RUB USD EUR GBP
01.01.2013 4,96 150,74 199,22 243,72
02.01.2013 4,96 150,74 199,22 243,72
03.01.2013 4,96 150,74 199,22 243,72
04.01.2013 4,99 150,37 197,96 244,20
05.01.2013 4,96 150,59 195,99 241,70

и добавить фунцию, где можно указать временной период (start date: dd/mm/yyyy, end date: dd/mm/yyyy

Еще раз спасибо огромное.

Автор - Guest
Дата добавления - 07.11.2014 в 06:45
Guest Дата: Пятница, 07.11.2014, 14:41 | Сообщение № 8
Группа: Гости
Извиняюсь, не могли бы показать код источника следующей строки:

<tr><tdclass=class_rate_bg2colspan=2>([0-9\.]+)</td></tr>
 
Ответить
СообщениеИзвиняюсь, не могли бы показать код источника следующей строки:

<tr><tdclass=class_rate_bg2colspan=2>([0-9\.]+)</td></tr>

Автор - Guest
Дата добавления - 07.11.2014 в 14:41
doober Дата: Пятница, 07.11.2014, 14:53 | Сообщение № 9
Группа: Друзья
Ранг: Ветеран
Сообщений: 971
Репутация: 333 ±
Замечаний: 0% ±

Excel 2010
Сходите по ссылке,посмотрите html код страницы


 
Ответить
СообщениеСходите по ссылке,посмотрите html код страницы

Автор - doober
Дата добавления - 07.11.2014 в 14:53
Guest Дата: Вторник, 11.11.2014, 13:55 | Сообщение № 10
Группа: Гости
Приветствую.

HTML код посмотрел, нашел вот эти строки где используется "rate":

td width="25" class="gen5" background="images/back_rates.gif"
td valign="top" class="gen5" background="images/back_rates.gif"
td height="35" class="gen2" colspan="6" background="images/back_rates.gif" width="100%"

Можете показать строку, откуда собирается дата?

Хотелось бы выгрузить историю по всем валютам на одном листе. Немножко видоизменил ваш код:

[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":

td width="25" class="gen5" background="images/back_rates.gif"
td valign="top" class="gen5" background="images/back_rates.gif"
td height="35" class="gen2" colspan="6" background="images/back_rates.gif" width="100%"

Можете показать строку, откуда собирается дата?

Хотелось бы выгрузить историю по всем валютам на одном листе. Немножко видоизменил ваш код:

[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]

Но почему-то перезаписывает все столбцы ...

Автор - Guest
Дата добавления - 11.11.2014 в 13:55
doober Дата: Вторник, 11.11.2014, 16:07 | Сообщение № 11
Группа: Друзья
Ранг: Ветеран
Сообщений: 971
Репутация: 333 ±
Замечаний: 0% ±

Excel 2010
Можно так.Файл HTML прилагаю
К сообщению приложен файл: ___-russian.rar (9.4 Kb)


 
Ответить
СообщениеМожно так.Файл HTML прилагаю

Автор - doober
Дата добавления - 11.11.2014 в 16:07
Guest Дата: Среда, 12.11.2014, 08:55 | Сообщение № 12
Группа: Гости
respect

Ах ... оказывается, там всего 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. respect respect respect respect
 
Ответить
Сообщениеrespect

Ах ... оказывается, там всего 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. respect respect respect respect

Автор - Guest
Дата добавления - 12.11.2014 в 08:55
doober Дата: Четверг, 13.11.2014, 23:39 | Сообщение № 13
Группа: Друзья
Ранг: Ветеран
Сообщений: 971
Репутация: 333 ±
Замечаний: 0% ±

Excel 2010
Если я вас правильно понял,то видео здесь в виде экзешника
Остальное все опыт,метод проб и ошибок и не один год.
Надо руками щупать.В книгах всего не опишут


 
Ответить
СообщениеЕсли я вас правильно понял,то видео здесь в виде экзешника
Остальное все опыт,метод проб и ошибок и не один год.
Надо руками щупать.В книгах всего не опишут

Автор - doober
Дата добавления - 13.11.2014 в 23:39
shoma_440 Дата: Воскресенье, 25.08.2019, 12:36 | Сообщение № 14
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Добрый день! скиньте пожалуйста ссылку на excel 2016 сумма прописью в Узбекских сумах! спасибо. и подскажите как его установить! спасибо!
 
Ответить
СообщениеДобрый день! скиньте пожалуйста ссылку на excel 2016 сумма прописью в Узбекских сумах! спасибо. и подскажите как его установить! спасибо!

Автор - shoma_440
Дата добавления - 25.08.2019 в 12:36
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!