ВБА руковање грешкама - Водич за руковање грешкама у програму Екцел ВБА

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

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

У програму Екцел ВБА, док извршавамо било који скуп кодова, добивамо неку врсту грешака. Неке од ових грешака су синтаксне грешке; неке су грешке које се не могу извршити. Синтаксна грешка када је направио корисник је истакнута црвеном бојом од стране самог Екцел-а. Али када постоји било која друга врста грешке у времену извођења, како ћемо се носити са тим и како прећи преко тога, оно што ћемо покрити у овом чланку.

Осим синтаксних грешака, и остале грешке у времену извођења морају се решавати приликом извршавања било ког скупа кодова. Прво, даћу пример како се јавља друга грешка при извршавању. Погледајте доњи код,

Ово је пример кода, када се изврши, вратиће оно што је написано у функцији мсгбок. Али као што видимо да у другом реду кода постоји 4/0, што математички није могуће, па ће вратити грешку у времену извођења. Извршимо горњи код и увидимо грешку коју ћемо добити.

Ово је грешка коју имамо током извршавања датог кода. Како се сада носимо са овом грешком, направи је Руковање грешкама.

Постоје две методе за руковање грешкама:

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

Објашњење

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

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

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

Пример # 1

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

Напиши следећи код након отварања подфункције,

Шифра:

Подузорак () О грешци Настави Даље МсгБок 4/2 МсгБок 4/0 МсгБок 4/1 Крај Суб

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

Постоји још један начин за руковање грешком - ВБА Гото Статемент. Екцел пружамо као одредиште на које треба ићи када пронађе грешку. Уместо претходног кода за руковање грешкама, убацили смо, запишите следећи код,

Шифра:

Суб Узорак () О грешци Иди на МсгБок 4/2 МсгБок 4/0 МсгБок 4/1 Крај Суб

Дајемо екцел Аз као одредиште на које треба ићи ако пронађе грешку. Сада након мсгбок-а напишите други код као доле,

Шифра:

Подузорак () О грешци ГоТо аз МсгБок 4/2 МсгБок 4/0 МсгБок 4/1 Готово: Изађи из суб

Сада морамо одредити одредиште аз као оно што треба да уради када екцел пронађе грешку у коду.

Шифра:

Подузорак () О грешци Иди на аз МсгБок 4/2 МсгБок 4/0 МсгБок 4/1 Готово: Изађи из под аз: МсгБок "Ово је грешка" & Ерр.Десцриптион Енд Суб

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

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

Опис грешке у коду нам помаже да покажемо тачно у чему је дошло до грешке у нашем коду.

Пример # 2

Научили смо како се бавимо грешкама у нашим кодовима. Погледајмо још један пример како се поступа са грешкама. Сматрајте следећи код као наш други пример.

Имамо нешто сличну грешку из примера 1. Грешка је у реду д = и / б. Сада ћемо се позабавити овим грешкама помоћу две горе описане методе.

Напиши следећи код након отварања подфункције,

Шифра:

Суб Сампле2 () О грешци Настави даље бк Дим и Као целобројно, б Као целобројно, ц Као целобројно, д Као целокупно и = 2 б = 0 ц = и + б МсгБок цд = и / б МсгБок д Крај под

Now when we execute our code, we can see that it ignores the second line and just displays the value for C.

The above error handler was a resume next, and now we will use the Go to wherein we will tell we excel a destination to go when it encounters an error. Write down the following code,

Code:

Sub Sample2() On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d

The bx is a destination given when it encounters an error after msgbox D write down the following code,

Code:

Sub Sample2() On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d DOne: Exit Sub

Now we need to define the destination Bx what it should do when it encounters an error, So write down the following code,

Code:

Суб Сампле2 () О грешци Иди на бк Дим и Као целобројно, б Као целобројно, ц Као целобројно, д Као целобројно и = 2 б = 0 ц = и + б МсгБок цд = и / б МсгБок д Урађено: Изађи из Суб бк: МсгБок „Ово је још једна грешка“ & Ерр.Десцриптион Енд Суб

Сада када извршимо код, можемо видети да нам екцел прво даје вредност за Ц.

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

Тако се бавимо уобичајеним грешкама у извршавању у програму Екцел ВБА.

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

Постоји неколико ствари које морамо имати на уму у вези са руковањем грешкама:

  1. На Грешка Настави даље, игнорише грешку.
  2. Он Еррор ГоТо Даје Екцелу одредиште када наиђе на грешку.
  3. Опис се користи за приказ тачне грешке која се догодила кориснику.

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