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

Вход

Регистрация

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

 

= Мир MS Excel/On error go to не ловит ошибку - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » On error go to не ловит ошибку (Формулы/Formulas)
On error go to не ловит ошибку
DeadMoroz Дата: Четверг, 28.05.2015, 17:05 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 40% ±

Excel 2007
Друзья, привет. Помогите, пожалуйста, разобраться.
В екселе живет макрос, который открывает по очереди некоторые вордовские файлы.
В макросе есть такой код:
[vba]
Код
  
         Set obj = CreateObject("Word.Application")
         With obj
             .documents.Open (researchesPath & fName)  
             For Each sh In .ActiveDocument.inlineshapes
                 On Error GoTo nextSh
                 sh.Chart.ChartData.Activate
nextSh:
             Next sh
         
[/vba]
Иногда в строке с методом Activate вылезает ошибка Method Activate failed. Отловить ее не смог, сделал "обработчик ошибок", который пропускает кусок кода и переходит к следующему витку цикла. Но ошибка все равно выскакивает, как будто нет никакого on error goto. Как наладить этот момент?
 
Ответить
СообщениеДрузья, привет. Помогите, пожалуйста, разобраться.
В екселе живет макрос, который открывает по очереди некоторые вордовские файлы.
В макросе есть такой код:
[vba]
Код
  
         Set obj = CreateObject("Word.Application")
         With obj
             .documents.Open (researchesPath & fName)  
             For Each sh In .ActiveDocument.inlineshapes
                 On Error GoTo nextSh
                 sh.Chart.ChartData.Activate
nextSh:
             Next sh
         
[/vba]
Иногда в строке с методом Activate вылезает ошибка Method Activate failed. Отловить ее не смог, сделал "обработчик ошибок", который пропускает кусок кода и переходит к следующему витку цикла. Но ошибка все равно выскакивает, как будто нет никакого on error goto. Как наладить этот момент?

Автор - DeadMoroz
Дата добавления - 28.05.2015 в 17:05
SLAVICK Дата: Четверг, 28.05.2015, 17:20 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Он ловит только 1-й раз.
Чтобы ловил дальше нужно очищать ошибку.
Попробуйте
[vba]
Код
On Error GoTo nextSh
[/vba]
заменить на:
[vba]
Код
  On Error Resume Next
                 If Err.Number > 0 Then: Err.Clear: GoTo nextSh
[/vba] :D


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеОн ловит только 1-й раз.
Чтобы ловил дальше нужно очищать ошибку.
Попробуйте
[vba]
Код
On Error GoTo nextSh
[/vba]
заменить на:
[vba]
Код
  On Error Resume Next
                 If Err.Number > 0 Then: Err.Clear: GoTo nextSh
[/vba] :D

Автор - SLAVICK
Дата добавления - 28.05.2015 в 17:20
_Boroda_ Дата: Четверг, 28.05.2015, 17:22 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Попробуйте вот так
[vba]
Код
    On Error Resume Next
      For Each sh In .ActiveDocument.inlineshapes
          sh.Chart.ChartData.Activate
      Next sh
      On Error Goto 0
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПопробуйте вот так
[vba]
Код
    On Error Resume Next
      For Each sh In .ActiveDocument.inlineshapes
          sh.Chart.ChartData.Activate
      Next sh
      On Error Goto 0
[/vba]

Автор - _Boroda_
Дата добавления - 28.05.2015 в 17:22
DeadMoroz Дата: Четверг, 28.05.2015, 21:14 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 40% ±

Excel 2007
Увы, ни один из способов не помог. Номер ошибки до метода Activate 0, в момент Activate возникает ошибка, и вместо того, чтобы переходить к следующей строчке, как указано в resume next, выкидывает ошибку (
Может, это какие-то особые ошибки, которые не поддаются стандартному лечению?
 
Ответить
СообщениеУвы, ни один из способов не помог. Номер ошибки до метода Activate 0, в момент Activate возникает ошибка, и вместо того, чтобы переходить к следующей строчке, как указано в resume next, выкидывает ошибку (
Может, это какие-то особые ошибки, которые не поддаются стандартному лечению?

Автор - DeadMoroz
Дата добавления - 28.05.2015 в 21:14
DeadMoroz Дата: Пятница, 29.05.2015, 09:32 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 40% ±

Excel 2007
Ззараза сегодня утром работает как часы.
Сделал так:
[vba]
Код
On Error Resume Next
sh.Chart.ChartData.Activate
If Err.Number = 0 Then...
End If
err.Clear
[/vba]
Моя версия: у макроса синдром доктора, испугался специалистов, гад.
Спасибо за рекомендации! И простите за отнятое время.


Сообщение отредактировал DeadMoroz - Пятница, 29.05.2015, 09:48
 
Ответить
СообщениеЗзараза сегодня утром работает как часы.
Сделал так:
[vba]
Код
On Error Resume Next
sh.Chart.ChartData.Activate
If Err.Number = 0 Then...
End If
err.Clear
[/vba]
Моя версия: у макроса синдром доктора, испугался специалистов, гад.
Спасибо за рекомендации! И простите за отнятое время.

Автор - DeadMoroz
Дата добавления - 29.05.2015 в 09:32
Мир MS Excel » Вопросы и решения » Вопросы по VBA » On error go to не ловит ошибку (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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