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

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

Владимир
...
Рейтинг: 0 / 0
импорт внешних данных xls
    #38872850
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
импорт внешних данных xls
    #38872864
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ как пример. Вообще можно намного лучше сделать, например сделать методы для доступа к элементам массива. Опыта на 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
импорт внешних данных xls
    #38872889
valdemarlo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VSVLAD, дружище я очень признателен получить отклик неравнодушного человека!!! спасибо
гениально, я не догадался раздобыть этот json файлик по ссылке rates. иду колдовать !!!! спасибо
...
Рейтинг: 0 / 0
импорт внешних данных xls
    #38872894
valdemarlo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VSVLAD, я честно сказать с VBA начал знакомится как раз в связи с этой задачей пару дней назад. знаний у меня маловато, настолько, что я не могу запустить этот скрипт =(.
Если я не очень нагло попрошу Вас вставить ваш код в файл xls это возможно?
а то у меня скрипт ругается: говорит compile error, user - defined type not defined и выделяет Sub T()
Dim Http As New XMLHTTP
...
Рейтинг: 0 / 0
импорт внешних данных xls
    #38872895
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tools -> References
Поставить две галки - Microsoft XML и Microsoft Script Control
...
Рейтинг: 0 / 0
импорт внешних данных xls
    #38872900
valdemarlo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пставил галки, тоже самое. не помогает
...
Рейтинг: 0 / 0
импорт внешних данных xls
    #38872914
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
valdemarloпставил галки, тоже самое. не помогаетвидать, не те поставил
...
Рейтинг: 0 / 0
импорт внешних данных xls
    #38872928
valdemarlo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, заработало! не туда жал. спасибо парни
...
Рейтинг: 0 / 0
импорт внешних данных xls
    #38873392
valdemarlo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
други, а как сделать чтоб полученные данные вставлялись в ячейку а не только отображались в виде уведомления? и есть функционал в VBA задать периодичность запросов ?
...
Рейтинг: 0 / 0
импорт внешних данных xls
    #38873469
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
valdemarloчтоб полученные данные вставлялись в ячейку
Код: vbnet
1.
Cells(1,1)=твой_текст


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

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

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

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


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