Екцел ВБА руковање са грешкама

Руковање погрешкама је врло користан и значајан механизам за програмске језике попут ВБА. Контрола или превенција грешака је аспект руковања грешкама, што значи предузимање ефикасних и значајних мера унутар ВБА скрипте како би се избегла појава искачуће поруке грешке

Различите врсте грешака у ВБА

  1. Синтакса грешка или грешка при разгледавању
  2. Грешка код компилације или компилације
  3. Грешка у раду
  4. Логичка грешка

Горе наведене грешке могу се отклонити помоћу доље наведених погрешака и различитих „Он Еррор“ изјава које се убацују између кода.

О грешци Наставите даље

Он Еррор Гото 0

О грешци Гото

На грешку Гото -1

Управљање грешкама ВБА уз помоћ различитих изјава 'НА ГРЕШИ'

Овде можете преузети овај ВБА обрада грешака са Екцел шаблоном овде - ВБА Обрада грешака са Екцел шаблоном

Пример бр. 1 - ВБА грешке компилације

Када постоји грешка у изјави или синтакси ВБА кода, када погрешно погрешно укуцате код, он ће бити означен црвеном бојом, овисно о опцијама подешавања у алатима (Ако сте одабрали Аутоматска провјера синтаксе).

Отвориће се прозор поруке о грешци при компајлирању када покренете код са погрешном синтаксом.

Шифра:

 Суб СИНТАКС_ЕРРОР () МсгБок ово је мој први програм Крај Суб 

"ГРЕШЕЊЕ КОМПИЛИЈЕ: ВАРИАБЛЕ НОТ ДЕФИНЕД" је најчешћа грешка која се појављује као искачућа порука. када референтна варијабла није дефинирана, долази до ове грешке.

Шифра:

 Суб ВБА_ФОРМАТ1 () А = 19049.83 А = Формат (А, "СТАНДАРД") МсгБок А Крајњи пот 

У горњем примеру, променљиви тип нисам декларирао као Стринг, дакле, долази до ове грешке. Дакле, морам да прогласим променљиву Дим А Ас Стринг.

Шифра:

 Под ВБА_ФОРМАТ1 () Дим А као низ А = 19049.83 А = Формат (А, "СТАНДАРД") МсгБок А Крај Под 

Пример бр. 2 - ВБА Рунтиме Еррор

Када су у изјави немогуће математичке изјаве или појмови, долази до ове грешке извођења.

Шифра:

 Суб РУНТИМЕ_1 () МсгБок 6/0 Крај Суб 

Пример бр. 3 - ВБА логичке грешке или грешке

Те грешке је врло тешко пратити, нити ће се истакнути нити се појавити порука о грешци. резултираће неочекиваним радњама и нетачним резултатима.

Пример: Када су две променљиве присутне у коду, може садржавати погрешну. У том случају долази до логичке грешке.

Како спречити грешке у ВБА?

Хајде да проверимо како да спречимо горе наведене различите врсте грешака у ВБА Екцел-у.

Корак 1: Отварање прозора ВБ Едитора Изаберите или кликните Висуал Басиц у групи Код на картици Девелопер или можете директно да кликнете на Алт + Ф11 пречац тастер.

Корак 2: Да бисте направили празан модул, под Мицрософт екцел објектима, кликните десним тастером миша на листу 1 (ВБ_ЕРРОР ХАНДЛИНГ) и Убаци модул тако да се створи нови празан модул.

Руковање грешкама ВБА са могућношћу отклањања грешке

Боље је саставити код прије него што га покренемо. Да бисте пратили компилацију, потребно је следити следеће кораке. На траци са алаткама за мени ВБ, под опцијом Дебуг, морамо одабрати компајлирани ВБА пројекат. Када кликнете на њега, она проверава код корак по корак, након што пронађе грешку, истакне је и појави се искачућа порука па је морате исправити. Једном када је исправљена, морате је саставити да бисте пронашли следећу грешку у коду.

Напомена: Помоћу опције превођења можемо исправити грешку компилације и синтаксе.

Управљање грешкама ВБА уз помоћ различитих изјава 'НА ГРЕШИ'

1. О грешци Наставите даље

Овде ће се грешка игнорисати и код ће прећи на даље.

У доле наведеном примеру 6 не може бити подељено са нулом, ако га покренете без уношења изјаве Он Еррор Ресуме Нект, тада се појављује испод поменуте грешке извршавања.

Шифра:

 Суб РУНТИМЕ_1 () МсгБок 6/0 Крај Суб 

Ако се на врху кода након Суб изјаве унесе Ресуме Еррор Ресуме Нект, игнорише се грешка извршавања и прелази на следећу изјаву, што резултира резултатом 6/2, тј. 3 (Попуп бок са резултатом).

Шифра:

 Суб РУНТИМЕ_2 () О грешци Настави Следећи МсгБок 6/0 МсгБок 6/2 Крај Суб 

2. Он Еррор ГоТо 0 и Еррор ГоТо -1

'Он Еррор ГоТо 0' зауставит ће код на одређеној линији која узрокује грешку и приказује оквир с поруком који описује или означава грешку.

Шифра:

 Суб онЕррор_Го_то_0 () На грешци ГоТо 0 Убиј "Ц: ТемпФиле.еке" домет ("А1") Вредност = 100 / "ПЕТЕР" Крај Пот 

Обично приказује подразумевано понашање у провери грешака, важно је када се користи заједно са „Укључи грешку даље“.

Обично можете да видите поље „Поруке о грешци током извршавања“, садржи опције „Настави“, „Крај“, „Отклањање грешака “ и „Помоћ“ . хајде да проверимо начине употребе сваког од њих.

  • Опција Настави ће занемарити изузетак и наставити код ако је могуће.
  • Крајња опција прекида програм.
  • Опција за уклањање погрешака ће означити изјаву где је дошло до грешке. што вам помаже да исправите исправку или исправите код.
  • Опција помоћи одвести ће вас да отворите Мицрософт МСДН страницу помоћи.

Он Еррор ГоТо 0 са Он Еррор Ресуме Нект

Шифра:

 Суб онЕррор_Го_то_0_витх_Ресуме_нект () О грешци Настави следећи убој "Ц: ТемпФиле.еке" На грешци ГоТо 0 домет ("А1") Вредност = 100 / "ПЕТЕР" Крај Суб 

У горњем коду ће игнорисати грешке све док не дође до изјаве о грешци ГоТо 0. Након изјаве о грешци ГоТо 0, код се враћа или наставља ка уобичајеној провери грешке и активира очекивану грешку. када покренем горњи код, он ће показати грешку поделе, тј. уписати неусклађеност (бројчана вредност се не може поделити на текст).

Он Еррор ГоТо 0 онемогућује било какво хватање грешака које је тренутно присутно у ВБА коду, тј. Искључује руковање грешкама у главном коду, док Он Еррор ГоТо -1 брише руковање грешкама и поставља га на ништа што вам помаже или омогућава да креирате другу замку грешке.

3. О грешци ГоТо <ЛАБЕЛ

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

Ова метода је погоднија и значајнија за грациозни излазак из програма ако се током извођења појави било која велика фатална грешка.

У доле наведеном ВБА коду, чим се грешка догоди на линији 3, програм преноси контролу на линију 6, тј. Налепницу (Попуп порука се појављује као "Руковатељ изузетака" ).

Шифра:

 Суб ОнЕррор_Го_то_Лабел () На грешци ГоТо Еррор_хандлер: МсгБок 9/0 МсгБок "Ова линија се неће извршити" Екит Суб Еррор_хандлер: МсгБок "изузетак хандлер" Енд Суб 

Овде можете приметити да 'Екит Суб' треба користити непосредно пре ознаке 'Еррор_хандлер:', то се ради да би се осигурало да се блок кода за обраду грешака заустави или не изврши ако нема грешке. Сада своју радну књигу можете да сачувате као „Екцел макро радну књигу“. Кликом на сачувај као у левом углу радног листа.

Ако поново отворите датотеку, можете кликнути на тастер за пречицу, тј. Фн + Алт + ф8, појавиће се дијалог "Макро" где можете покренути сачувани макро код по вашем избору или кликните Фн + Алт + Ф11 за пун макро прозор.

Ствари које треба запамтити

  • Пре него што напишете код, морате да се уверите да је прекид на нераспоређеним грешкама проверен или изабран грешком. опција за хватање опћенито у опцијама алата на ВБА алатној траци.
  • То је подразумевана поставка која помаже у заустављању кода због грешака које се не обрађују.
  • Прекид на свим грешкама: зауставит ће ваш код на свим врстама грешака.
  • Модул класе пробоја: У случају да се у коду користи објект попут корисничког обрасца, то ће истакнути да тачна линија која узрокује грешку.

Препоручени чланци

Ово је водич за руковање грешкама ВБА. Овде смо расправљали о томе како користити ВБА руковање грешкама у Екцелу заједно са неким практичним примерима и бесплатним екцел шаблоном. Можете и да прођете кроз друге наше предложене чланке -

  1. ВБА Децларе Арраи (Примери)
  2. Грешка ВБА
  3. ВБА лист без заштите
  4. ВБА Колоне | Екцел шаблони
  5. ВБА Енвиронмент

Категорија: