ВБА грешка игнорисања

Овај водич ће показати како осигурати да ВБА занемарује грешку при покретању кода.

Понекад, када конструишете ВБА код, заправо желите да ВБА игнорише линију кода када дође до грешке. Ово може бити веома корисно ако, на пример, желите да избришете лист ако постоји, али занемарите ту линију кода ако лист не постоји.

(За више информација о ВБА грешкама погледајте наш Водич за руковање грешкама)

На Грешка Настави даље

Да бисмо игнорисали ред кода у процедури, користимо На Грешка Настави даље изјава.

123456 Суб ТестЕррорИгноре ()На Грешка Настави даљеАцтивеВоркбоок.Схеетс ("Схеет4"). ИзаберитеАцтивеСхеет.Делете'Више кода овдеЕнд Суб

У горњем примеру, ан На Грешка Настави даље изјава је стављена на врх процедуре. Код се затим конструише тако да изабере Схеет4, а затим га избрише.

Међутим, због На Грешка Настави даље изјава, ако код не пронађе Схеет4, он ће само прећи на следећи ред и избрисати било који активни лист који пронађе.

Ово може бити прилично опасно ако желите избрисати само лист 4, а не само лист који је активан. Да бисмо спречили ову грешку, можемо поставити променљиву на лист 4 и избрисати само тај лист АКО постоји.

1234567 Суб ТестЕррорИгноре ()Дим вс Ас ВорксхеетНа Грешка Настави даљеСет вс = АцтивеВоркбоок.Схеетс ("Схеет4")вс.Делете'Више кода овдеЕнд Суб

Сада када се код покрене, избрисат ће се само Схеет4 АКО Лист 4 заиста постоји. Ако Лист 4 не постоји, ВБА ће занемарити грешку и наставити даље.

Други пример овога је ако желите да обришете све листове из радне свеске помоћу петље. Како Екцел радна свеска мора имати најмање један лист, код ће избрисати све листове осим једног.

123456 Суб ДелетеСхеетс ()Дим вс Ас ВорксхеетЗа сваки вс у АцтивеВоркбоок.Схеетсвс.ДелетеНект всЕнд Суб

Горњи код ће престати са грешком.

Кликом Отклањање грешака увешће нас у код са истакнутом линијом увреде!

Међутим, додавањем На Грешка Настави даље ред до кода спречиће грешку, а рутина ће увек оставити један лист у радној свесци.

12345678 Суб ДелетеСхеетс ()'овде додајте линију грешкеНа Грешка Настави даљеДим вс Ас ВорксхеетЗа сваки вс у АцтивеВоркбоок.Схеетсвс.ДелетеНект всЕнд Суб

Он Еррор ГоТо 0

Често ако користите На Грешка Настави даље да бисте игнорисали грешку, желите да грешке буду заробљене касније у коду, или желите да ваш код престане да ради ако се грешка догоди у будућности. Можемо поново подесити руковање грешкама тако да ће се код поново појавити грешке додавањем линије Он Еррор ГоТо 0.

12345678 Суб ТестЕррорИгноре ()Дим вс Ас ВорксхеетНа Грешка Настави даљеСет вс = АцтивеВоркбоок.Схеетс ("Схеет4")вс.ДелетеОн Еррор ГоТо 0'Више кода овдеЕнд Суб

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave