ВБА о изјавама о грешкама - Три најбоља начина за решавање грешака

Изјава о грешци у програму Екцел ВБА

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

Предвиђање грешке у коду чини вас професионалцем у ВБА кодирању. Не можете учинити код 100% ефикасним. Чак и ако сте сигурни у свој код на овај или онај начин, то може довести до грешке.

Готово је немогућ задатак идентификовати и решити сваку врсту грешке, али имамо различите начине за решавање грешака у ВБА. Док пишете код, можда нећете претпоставити какву врсту грешке може испразнити, али ако дође до било какве грешке, потрошићете више времена на отклањање грешака него на писање самог кода.

Шта је грешка?

Грешка није ништа друго до што се линија кода не може извршити због функционалности или погрешног кода. Зато покушајте да предвидете грешку и да је решите.

На пример, ако покушате да избришете лист који није ту, онда очигледно не можемо извршити ту линију кода.

Грешка је три типа, грешка је у компајлирању због непријављених променљивих. Друга је грешка при уносу података због погрешних уноса кодера, а трећа је грешка у времену извођења због тога што ВБА не може препознати линију кода. За покушај приступа или обраде радног листа или радне свеске који нису тамо.

Али у ВБА имамо изјаву за руковање свим овим врстама грешака, тј. Изјаву „О грешци“.

Врсте изјава о грешкама

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

Изјава о грешци садржи три врсте изјава.

  1. ГоТо 0 значи кад год се догоди грешка у времену извођења, екцел или ВБА треба да прикажу оквир са поруком о грешци у којем се каже врста грешке на коју је наишла. Чим ВБА изврши код, онемогућава све руковаоце грешкама у том одређеном блоку на коду.
  2. Ресуме Нект значи кад год дође до грешке, ова наредба налаже екцелу да игнорише ту грешку и пређе на (наставак следећег) следећи ред кода без приказивања порука о грешци. То не значи да ће исправити грешку; него само игнорише грешку.
  3. ГоТо (ознака) значи кад год ВБА наиђе на грешку, идите на додељену ознаку. То чини да код пређе на одређену линију коју даје кодер.

Три најбоља начина за решавање грешака у ВБА

# 1 - На грешци Настави даље

Претпоставимо да вредност 20 делите са 0 и прогласили сте променљиву да бисте јој доделили резултат дељења.

Шифра:

Суб ОнЕррор_Екампле1 () Дим и Ас Интегер и = 20/0 Енд Суб

Ако покренете овај код, бациће доњу грешку.

Дакле, ниједан број не можете поделити са нултом вредношћу. Број грешке у времену извођења је 11, тј. Подела са нулом.

Сада ћу додати још један ред у код.

Шифра:

Суб ОнЕррор_Екампле1 () Дим и Ас Интегер, ј Ас Интегер и = 20/0 ј = 20/2 Енд Суб

Сада ћу додати изјаву о наставку грешке, следећу на врху.

Шифра:

Суб ОнЕррор_Екампле1 () Дим и Ас Интегер, ј Ас Интегер Он Еррор Ресуме Нект и = 20/0 ј = 20/2 Енд Суб

Ако извршим овај код, неће ми се појавити поруке о грешкама; него ће извршити следећи ред кода, тј. ј = 20/2.

# 2 - Ознака грешке ГоТо

Прогласио сам три променљиве.

Шифра:

Суб ОнЕррор_Екампле1 () Дим и Ас Интегер, ј Ас Интегер, к Ас Интегер

За све ове три променљиве задаћу израчунавање дељења.

Шифра:

Суб ОнЕррор_Екампле1 () Дим и Као целобројно, ј Као целобројно, к Као целобројно и = 20/0 ј = 20/2 к = 10/5

Резултат сва ова три израчунавања биће приказан у оквиру за поруку.

Шифра:

Суб ОнЕррор_Екампле1 () Дим и Као целобројно, ј Као целобројно, к Као целобројно и = 20/0 ј = 20/2 к = 10/5 МсгБок "Вредност и је" & и & вбНевЛине & "Вредност ј је "& ј & _ вбНевЛине &" Вредност к је "& к & вбНевЛине Енд Суб

Сада ћу покушати да извршим овај код, јер израчунавање „И“ није правилно. Добићемо грешку времена извођења 11.

Сада ћу додати изјаву „Он Еррор Ресуме Нект“.

Шифра:

Суб ОнЕррор_Екампле1 () Дим и као целобројно, ј као целобројно, к као целобројно при грешци Настави даље и = 20/0 ј = 20/2 к = 10/5 МсгБок "Вредност и је" & и & вбНевЛине & "Тхе вредност ј је "& ј & _ вбНевЛине &" Вредност к је "& к & вбНевЛине Енд Суб

Ако ово извршим, прескочит ће израчун „И“ и извршити преостала два израчунавања, а резултат је сљедећи.

Сада ћу уместо „Он Еррор Ресуме Нект“ додати „Он Еррор ГоТо КЦалцулатион“.

Шифра:

Суб ОнЕррор_Екампле1 () Дим и као целобројно, ј као целобројно, к као целобројно при грешци Иди на КИзрачун: и = 20/0 ј = 20/2 КОбрачун: к = 10/5 МсгБок "Вредност и је" & и & вбНевЛине & "Вредност ј је" & ј & _ вбНевЛине & "Вредност к је" & к & вбНевЛине Енд Суб
Напомена: Овде је „КЦалцулатион“ име етикете које сам дао; можете дати своје име етикете без икаквог простора.

Ако извршим ову линију кода, она неће прећи на следећу линију. Уместо тога, скочиће на назив ознаке који сам унео, тј. „КЦалцуалтион“. Овде ће занемарити грешку коју даје „И“, а такође неће извршити израчун „ј“, али одмах прелази на „КЦалцуалтион“.

# 3 - Испис броја грешке у ВБА

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

Шифра:

Ерр.Нумбер

Сада ћу покренути овај код, прво поље са поруком ће показати резултате прорачуна.

Кликните на ОК. Показаће се још једно поље за приказ броја грешке.

Идемо 11; као резултат, тј. подела нула.

Уместо броја можемо добити и опис грешке. Само треба да променимо код. Испод је шифра.

Шифра:

Ерр.Десцриптион

Приказаће се овакав опис.

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

  • Након што на крају кода унесете “Он Еррор Ресуме Нект”, не заборавите да додате изјаву “Он Еррор ГоТо 0.”
  • Име етикете би требало да буде исто на оба места.
  • Имена етикета не морају бити унапред дефинисана.
  • На крају, увек погледајте кроз шта је дошло до грешке у засебном оквиру за поруке.

Занимљиви Чланци...