Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / импорт внешних данных xls / 13 сообщений из 13, страница 1 из 1
05.02.2015, 20:55
    #38872842
valdemarlo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
импорт внешних данных xls
Ребят привет, прошу ногами не бить. честно просидел три дня в интернете с поиском решения. я в ступоре.
подскажите пжста как с этого ресурса https://m.ofc.ru/#!/currency безгеморройно импортировать данные в эксель. стандартными методами пишет, что не может вытащить данные, ни в какую. не хочет импортироваться из-за того что сайт на Яве чтоли...
буду признателен за помощь.

я как вариант, думаю, что можно пойти неудобным методом. У меня получилось забрать данные в эксель через импорт данных из текстового файла. я предварительно сохранил WEB страницу в txt. Так как на ресурсе лежат котировки, они регулярно обновляются (и нужны они мне именно сэтого источника и никакого другого. сайт ЦБ не предлагать)Но в этом случае мне нужен VBA скрипт, который будет с интервалом времени сохранять на ПК данную страницу. В свою очередь эксель будет обновлять данные импортом их этого сохраненного тхт-шника с аналогичным интервалом времени.
вот такая абра-кадабра.
буду признателен за помощь.!!!!!

Владимир
...
Рейтинг: 0 / 0
05.02.2015, 21:08
    #38872850
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
импорт внешних данных xls
valdemarlo,

Первым делом, можно получить курсы валют в виде JSON объекта
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Dim Http As Object
Set Http = CreateObject("Microsoft.XMLHTTP")
    
Http.Open "GET", "https://m.ofc.ru/rates", False
Http.send
    
MsgBox Http.responseText


Дальше зависит от навыков, или парсить как текст. Или через обёртку на JS и объект ScriptControl удобно вытащить нужные данные и раскидать по нужным ячейкам. А можно что-нибудь ещё придумать
...
Рейтинг: 0 / 0
05.02.2015, 21:49
    #38872864
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
импорт внешних данных xls
+ как пример. Вообще можно намного лучше сделать, например сделать методы для доступа к элементам массива. Опыта на JS у меня немного, но есть над чем поработать:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Sub T()
    Dim Http As New XMLHTTP, ScriptCtl As New ScriptControl
    Dim JSCode As String, sMessage As String, N As Long
    
    Http.Open "GET", "https://m.ofc.ru/rates", False
    Http.send
    
    JSCode = "var res = " & Http.responseText & ";" & _
             "var cnt = res.rates.length, currency = [], sell = [], buy = [];" & _
             "for(var rt in res.rates){" & _
             "    currency.push(res.rates[rt].currency);" & _
             "    sell.push(res.rates[rt].sell);" & _
             "    buy.push(res.rates[rt].buy);" & _
             "}"
    
    ScriptCtl.Language = "jscript"
    ScriptCtl.AddCode JSCode
    
    MsgBox ScriptCtl.CodeObject.currency, vbInformation
    MsgBox ScriptCtl.CodeObject.sell, vbInformation
End Sub
...
Рейтинг: 0 / 0
05.02.2015, 23:22
    #38872889
valdemarlo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
импорт внешних данных xls
VSVLAD, дружище я очень признателен получить отклик неравнодушного человека!!! спасибо
гениально, я не догадался раздобыть этот json файлик по ссылке rates. иду колдовать !!!! спасибо
...
Рейтинг: 0 / 0
05.02.2015, 23:31
    #38872894
valdemarlo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
импорт внешних данных xls
VSVLAD, я честно сказать с VBA начал знакомится как раз в связи с этой задачей пару дней назад. знаний у меня маловато, настолько, что я не могу запустить этот скрипт =(.
Если я не очень нагло попрошу Вас вставить ваш код в файл xls это возможно?
а то у меня скрипт ругается: говорит compile error, user - defined type not defined и выделяет Sub T()
Dim Http As New XMLHTTP
...
Рейтинг: 0 / 0
05.02.2015, 23:34
    #38872895
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
импорт внешних данных xls
Tools -> References
Поставить две галки - Microsoft XML и Microsoft Script Control
...
Рейтинг: 0 / 0
05.02.2015, 23:45
    #38872900
valdemarlo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
импорт внешних данных xls
пставил галки, тоже самое. не помогает
...
Рейтинг: 0 / 0
06.02.2015, 00:37
    #38872914
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
импорт внешних данных xls
valdemarloпставил галки, тоже самое. не помогаетвидать, не те поставил
...
Рейтинг: 0 / 0
06.02.2015, 01:54
    #38872928
valdemarlo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
импорт внешних данных xls
Shocker.Pro, заработало! не туда жал. спасибо парни
...
Рейтинг: 0 / 0
06.02.2015, 14:21
    #38873392
valdemarlo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
импорт внешних данных xls
други, а как сделать чтоб полученные данные вставлялись в ячейку а не только отображались в виде уведомления? и есть функционал в VBA задать периодичность запросов ?
...
Рейтинг: 0 / 0
06.02.2015, 15:19
    #38873469
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
импорт внешних данных xls
valdemarloчтоб полученные данные вставлялись в ячейку
Код: vbnet
1.
Cells(1,1)=твой_текст


valdemarloзадать периодичность запросовсмотри Application.OnTime
...
Рейтинг: 0 / 0
06.02.2015, 17:00
    #38873578
valdemarlo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
импорт внешних данных xls
Shocker.Pro, я прнизаю что я профан. мог ты мне на примере того, что выложил VSVLAD показать куда вставить эти параметры ?

Cells(1,1)=твой_текст

и Application.OnTime[/quot]
...
Рейтинг: 0 / 0
06.02.2015, 18:05
    #38873633
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
импорт внешних данных xls
Если вам нужно писать программу на заказ - вы напишите ТЗ, обозначьте сумму вознаграждения и опубликуйте здесь или в "Работе". Если вам нужна помощь чтобы разобраться - пожалуйста потрудитесь приложить усилия, чтобы разобраться, помощь вы получите. В конце-концов, есть хелп, в котором есть описание и примеры по применению Application.OnTime

Cells(1,1)=сюда вы пишете то, что хотите положить в ячейку А1
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / импорт внешних данных xls / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]