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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос для получения курсов валют выдает ошибку - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос для получения курсов валют выдает ошибку (Макросы/Sub)
Макрос для получения курсов валют выдает ошибку
Frenolon Дата: Среда, 13.06.2018, 14:06 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Добрый!

Есть файл с макросом ( в приложении), скачал на этом же сайте - который достает с сайта CBR курсы валют на каждый день
Сегодня упорно ни чего не работает выдает ошибку "5".

Вот эта строчка в макросе подсвечивается желтым
[vba]
Код
Курс = CCur(Mid(Ответ, InStr(InStr(1, Ответ, "EUR"), Ответ, "</TD></TR>") - 7, 7))
[/vba]

Помогите пожалуйста с ремонтом!
К сообщению приложен файл: Ex_Rate.xlsm(22.3 Kb)


Сообщение отредактировал Frenolon - Среда, 13.06.2018, 15:24
 
Ответить
СообщениеДобрый!

Есть файл с макросом ( в приложении), скачал на этом же сайте - который достает с сайта CBR курсы валют на каждый день
Сегодня упорно ни чего не работает выдает ошибку "5".

Вот эта строчка в макросе подсвечивается желтым
[vba]
Код
Курс = CCur(Mid(Ответ, InStr(InStr(1, Ответ, "EUR"), Ответ, "</TD></TR>") - 7, 7))
[/vba]

Помогите пожалуйста с ремонтом!

Автор - Frenolon
Дата добавления - 13.06.2018 в 14:06
Hugo Дата: Среда, 13.06.2018, 15:45 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2836
Репутация: 639 ±
Замечаний: 0% ±

Там сайт вроде уже давно формат поменял - удивляете меня этим
Сегодня упорно ни чего не работает
- как будто вчера работало...
Чем эту переписывать (хотя я недавно одну такую чинил сдуру) - берите готовую другую у EducatedFool на сайте ( http://excelvba.ru/code/CurrencyRate ). А может и тут где есть, которая из xml тянет.


excel@nxt.ru
webmoney: E265281470651 R418926282008 Z422237915069


Сообщение отредактировал Hugo - Среда, 13.06.2018, 16:06
 
Ответить
СообщениеТам сайт вроде уже давно формат поменял - удивляете меня этим
Сегодня упорно ни чего не работает
- как будто вчера работало...
Чем эту переписывать (хотя я недавно одну такую чинил сдуру) - берите готовую другую у EducatedFool на сайте ( http://excelvba.ru/code/CurrencyRate ). А может и тут где есть, которая из xml тянет.

Автор - Hugo
Дата добавления - 13.06.2018 в 15:45
Frenolon Дата: Среда, 13.06.2018, 16:44 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
03.06.2018 - данные обновились автоматически......все работало....

Дело в том что предпочтителен именно такой формат таблицы - с двойным нажатием и датами на весь месяц....

Много людей пользуются, а в предложенном варианте есть 1 дата на которую и показывается курс -
ее значение не сохраняется.

Необходим массив прошлых данных...


Сообщение отредактировал Frenolon - Среда, 13.06.2018, 16:57
 
Ответить
Сообщение03.06.2018 - данные обновились автоматически......все работало....

Дело в том что предпочтителен именно такой формат таблицы - с двойным нажатием и датами на весь месяц....

Много людей пользуются, а в предложенном варианте есть 1 дата на которую и показывается курс -
ее значение не сохраняется.

Необходим массив прошлых данных...

Автор - Frenolon
Дата добавления - 13.06.2018 в 16:44
Hugo Дата: Среда, 13.06.2018, 18:26 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2836
Репутация: 639 ±
Замечаний: 0% ±

Ну ведь элементарно поправить:
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Intersect(Target, [A:A]) Is Nothing Or Target.Address(0, 0) = "A1" Then Exit Sub
    Cancel = True
    If Not IsDate(Target) Then Exit Sub
    Target.Offset(, 1) = GetRate("EUR", Target)    'Ex_Rate_EUR(Target)
    Target.Offset(, 2) = GetRate("CZK", Target)    'Ex_Rate_CZK(Target)
End Sub
[/vba]
Только ещё нужно в коде Игоря или объявить все переменные (не любит он это дело :) ), или отключить 'Option Explicit
P.S. вот только непонятно как оно машину времени включает... :) Ааа, это банк так придумал, вероятно есть у них смысл, хотя я его не вижу...


excel@nxt.ru
webmoney: E265281470651 R418926282008 Z422237915069


Сообщение отредактировал Hugo - Среда, 13.06.2018, 18:33
 
Ответить
СообщениеНу ведь элементарно поправить:
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Intersect(Target, [A:A]) Is Nothing Or Target.Address(0, 0) = "A1" Then Exit Sub
    Cancel = True
    If Not IsDate(Target) Then Exit Sub
    Target.Offset(, 1) = GetRate("EUR", Target)    'Ex_Rate_EUR(Target)
    Target.Offset(, 2) = GetRate("CZK", Target)    'Ex_Rate_CZK(Target)
End Sub
[/vba]
Только ещё нужно в коде Игоря или объявить все переменные (не любит он это дело :) ), или отключить 'Option Explicit
P.S. вот только непонятно как оно машину времени включает... :) Ааа, это банк так придумал, вероятно есть у них смысл, хотя я его не вижу...

Автор - Hugo
Дата добавления - 13.06.2018 в 18:26
Pelena Дата: Среда, 13.06.2018, 18:27 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12906
Репутация: 2843 ±
Замечаний: 0% ±

Excel 2010, 2016 & Mac Excel
Попробуйте так
К сообщению приложен файл: 0953525.xlsm(21.9 Kb)


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеПопробуйте так

Автор - Pelena
Дата добавления - 13.06.2018 в 18:27
Hugo Дата: Среда, 13.06.2018, 18:30 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2836
Репутация: 639 ±
Замечаний: 0% ±

А тёзкино работает быстрее :)
Но я бы всёж проверял дату и на будущее не тянул чтоб не было косяков. В будущем :)
P.S. Можно не мучить банк ненужными запросами, а брать сразу обе валюты за день - но это нужно чуть переделать UDF именно под эту задачу. Но будет работать в 2 раза быстрее!


excel@nxt.ru
webmoney: E265281470651 R418926282008 Z422237915069


Сообщение отредактировал Hugo - Среда, 13.06.2018, 18:36
 
Ответить
СообщениеА тёзкино работает быстрее :)
Но я бы всёж проверял дату и на будущее не тянул чтоб не было косяков. В будущем :)
P.S. Можно не мучить банк ненужными запросами, а брать сразу обе валюты за день - но это нужно чуть переделать UDF именно под эту задачу. Но будет работать в 2 раза быстрее!

Автор - Hugo
Дата добавления - 13.06.2018 в 18:30
Frenolon Дата: Среда, 13.06.2018, 19:25 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Огромное спасибо за помощь!
 
Ответить
СообщениеОгромное спасибо за помощь!

Автор - Frenolon
Дата добавления - 13.06.2018 в 19:25
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос для получения курсов валют выдает ошибку (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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