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

Вход

Регистрация

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

 

= Мир MS Excel/Последовательная проверка ошибок - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Последовательная проверка ошибок (Макросы/Sub)
Последовательная проверка ошибок
Паштет Дата: Понедельник, 27.02.2023, 09:58 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 155
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
Добрый день!
Никак не могу разобраться, как нужно проверять на ошибки, если надо проверить два блока последовательно?
Есть такой блок кода:
[vba]
Код
On Error GoTo 10
With Sheets("Æóðíàë ÈÁ")
If .FilterMode Then .ShowAllData
iRow = .Range(.Cells(5, 54), .Cells(.Cells(Rows.Count, 54).End(xlUp).Row, 54)).Find(What:="S").Row
End With
On Error GoTo -1
10:
On Error GoTo 20
With Sheets("Æóðíàë ÈÁ")
If .FilterMode Then .ShowAllData
strIts = .Range(.Cells(5, 54), .Cells(.Cells(Rows.Count, 54).End(xlUp).Row, 54)).Find(What:="N").Row
End With
On Error GoTo 0
20:
[/vba]
При проверке второго блока, при не нахождении "N", выводит ошибку, а не отменят действие, как это происходит в первом блоке.


Сообщение отредактировал Паштет - Понедельник, 27.02.2023, 10:31
 
Ответить
СообщениеДобрый день!
Никак не могу разобраться, как нужно проверять на ошибки, если надо проверить два блока последовательно?
Есть такой блок кода:
[vba]
Код
On Error GoTo 10
With Sheets("Æóðíàë ÈÁ")
If .FilterMode Then .ShowAllData
iRow = .Range(.Cells(5, 54), .Cells(.Cells(Rows.Count, 54).End(xlUp).Row, 54)).Find(What:="S").Row
End With
On Error GoTo -1
10:
On Error GoTo 20
With Sheets("Æóðíàë ÈÁ")
If .FilterMode Then .ShowAllData
strIts = .Range(.Cells(5, 54), .Cells(.Cells(Rows.Count, 54).End(xlUp).Row, 54)).Find(What:="N").Row
End With
On Error GoTo 0
20:
[/vba]
При проверке второго блока, при не нахождении "N", выводит ошибку, а не отменят действие, как это происходит в первом блоке.

Автор - Паштет
Дата добавления - 27.02.2023 в 09:58
Pelena Дата: Понедельник, 27.02.2023, 10:30 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19182
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
Не вижу метки 20
Я бы ещё после первой обработки обнулила ошибку через Err.Clear


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
Не вижу метки 20
Я бы ещё после первой обработки обнулила ошибку через Err.Clear

Автор - Pelena
Дата добавления - 27.02.2023 в 10:30
Паштет Дата: Понедельник, 27.02.2023, 10:46 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 155
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
Метку 20 в сообщении подправил.
Err.Clear не помогает. Вставлял после метки 10: :(


Сообщение отредактировал Паштет - Понедельник, 27.02.2023, 10:48
 
Ответить
СообщениеМетку 20 в сообщении подправил.
Err.Clear не помогает. Вставлял после метки 10: :(

Автор - Паштет
Дата добавления - 27.02.2023 в 10:46
Gustav Дата: Понедельник, 27.02.2023, 11:25 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2739
Репутация: 1137 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Что мешает сделать On Error Resume Next в самом начале и проверки через блок If Err <> 0 после каждого потенциального места ошибки? В GoTo запутаетесь...


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеЧто мешает сделать On Error Resume Next в самом начале и проверки через блок If Err <> 0 после каждого потенциального места ошибки? В GoTo запутаетесь...

Автор - Gustav
Дата добавления - 27.02.2023 в 11:25
Паштет Дата: Понедельник, 27.02.2023, 12:10 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 155
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
Gustav, а можете привести пример для одного блока?
Моя постройка ушла в бесконечный цикл.
 
Ответить
СообщениеGustav, а можете привести пример для одного блока?
Моя постройка ушла в бесконечный цикл.

Автор - Паштет
Дата добавления - 27.02.2023 в 12:10
RAN Дата: Понедельник, 27.02.2023, 12:16 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Что есть
[vba]
Код
On Error GoTo -1
[/vba]


[offtop]Почему картинка в пост не вставляется?[/offtop]

[vba]
Код
On Error Resume Next
With Sheets("?o?iae EA")
If .FilterMode Then .ShowAllData
iRow = .Range(.Cells(5, 54), .Cells(.Cells(Rows.Count, 54).End(xlUp).Row, 54)).Find(What:="S").Row
End With
If Err Then Err.Clear
With Sheets("?o?iae EA")
If .FilterMode Then .ShowAllData
strIts = .Range(.Cells(5, 54), .Cells(.Cells(Rows.Count, 54).End(xlUp).Row, 54)).Find(What:="N").Row
End With
If Err Then Err.Clear
[/vba]
К сообщению приложен файл: 8317333.jpg (15.8 Kb)


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Понедельник, 27.02.2023, 12:19
 
Ответить
СообщениеЧто есть
[vba]
Код
On Error GoTo -1
[/vba]


[offtop]Почему картинка в пост не вставляется?[/offtop]

[vba]
Код
On Error Resume Next
With Sheets("?o?iae EA")
If .FilterMode Then .ShowAllData
iRow = .Range(.Cells(5, 54), .Cells(.Cells(Rows.Count, 54).End(xlUp).Row, 54)).Find(What:="S").Row
End With
If Err Then Err.Clear
With Sheets("?o?iae EA")
If .FilterMode Then .ShowAllData
strIts = .Range(.Cells(5, 54), .Cells(.Cells(Rows.Count, 54).End(xlUp).Row, 54)).Find(What:="N").Row
End With
If Err Then Err.Clear
[/vba]

Автор - RAN
Дата добавления - 27.02.2023 в 12:16
Serge_007 Дата: Понедельник, 27.02.2023, 12:29 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
[offtop]
Почему картинка в пост не вставляется?
Обновление уКоз
Теперь картинку можно посмотреть кликом прямо из вложения (не открывая в новом окне)
[/offtop]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение[offtop]
Почему картинка в пост не вставляется?
Обновление уКоз
Теперь картинку можно посмотреть кликом прямо из вложения (не открывая в новом окне)
[/offtop]

Автор - Serge_007
Дата добавления - 27.02.2023 в 12:29
Gustav Дата: Понедельник, 27.02.2023, 14:48 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2739
Репутация: 1137 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Что есть
On Error GoTo -1

Тоже не так давно впервые столкнулся с -1. Пока толком не вкурил, зачем этот нюанс.

В Сети лучше искать без минуса, т.е. по строке "On Error GoTo 1", с -1 как-то не очень находится.

Вот две ссылки, причем по первой -1 является чуть ли не официальной опцией. Но народ большей частью недоумевает, поэтому задаёт вопрос по второй ссылке:

https://learn.microsoft.com/ru-ru....atement

https://stackoverflow.com/questio....o-1-vba


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
Что есть
On Error GoTo -1

Тоже не так давно впервые столкнулся с -1. Пока толком не вкурил, зачем этот нюанс.

В Сети лучше искать без минуса, т.е. по строке "On Error GoTo 1", с -1 как-то не очень находится.

Вот две ссылки, причем по первой -1 является чуть ли не официальной опцией. Но народ большей частью недоумевает, поэтому задаёт вопрос по второй ссылке:

https://learn.microsoft.com/ru-ru....atement

https://stackoverflow.com/questio....o-1-vba

Автор - Gustav
Дата добавления - 27.02.2023 в 14:48
Паштет Дата: Понедельник, 27.02.2023, 16:32 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 155
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
RAN, спасибо. Заработало как надо.
 
Ответить
СообщениеRAN, спасибо. Заработало как надо.

Автор - Паштет
Дата добавления - 27.02.2023 в 16:32
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Последовательная проверка ошибок (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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