ВБА руковање грешкама | Водич за руковање грешкама у програму Екцел ВБА
Екцел ВБА руковање грешкама
У ВБА када радимо са кодовима можемо наићи на много различитих врста грешака, а начин решавања ових грешака познат је под називом Руковање грешкама, сада може доћи до неких грешака које се праве у синтакси, а које Екцел сам истиче, али када постоји нека грешка што је ван опсега или нешто што не постоји екцел даје нам искачуће прозоре за исто, важно је знати који је код грешке за коју грешку да бисмо идентификовали грешку у коду.
У програму Екцел ВБА приликом извршавања било ког скупа кодова добијамо неку врсту грешака. Неке од ових грешака су синтаксне грешке, неке су грешке које се не могу извршити. Синтаксна грешка када је направио корисник је истакнута црвеном бојом од стране самог Екцел-а. Али када постоји било која друга врста грешке током извођења, како ћемо то решити и како прећи преко тога, то ћемо покрити у овом чланку.
Поред синтаксних грешака, и остале грешке у времену извођења морају се решавати током извршавања било ког скупа кодова. Прво, даћу пример како се јавља друга грешка у извршавању. Погледајте доњи код,
Ово је пример кода када се изврши вратиће оно што је написано у функцији мсгбок. Али као што видимо да у другом реду кода постоји 4/0, што математички није могуће, па ће вратити грешку у времену извођења. Извршимо горњи код и увидимо грешку коју ћемо добити.
Ово је грешка коју имамо током извршавања датог кода. Како се сада бавимо овом грешком, то ради Еррор Хандлинг (Руковање грешкама).
Постоје две методе за руковање грешкама:
- О грешци Гото и
- На грешци Настави даље.
Објашњење
Као што је горе објашњено, у ВБА имамо много врста грешака, неке су синтакса, а неке су време извођења. Синтаксне грешке су већ истакнуте црвеном бојом, на пример, погледајте испод снимка екрана,
Док је друга грешка у времену извођења. У основи, Екцел ће урадити следеће три ствари, или ће показати грешку или ће игнорисати ту грешку или ће показати одређени скуп упутстава. Да бисмо извршавали такве задатке морамо да дамо упутства и то се назива Руковање грешкама.
Како поступати са грешкама у ВБА коду?
Можете да преузмете овај ВБА образац за руковање грешкама у програму Екцел овде - ВБА за руковање грешкама у програму ЕкцелПример # 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 ц = и + б МсгБок ц д = и / б МсгБок д Крај под
Сада када извршимо наш код, можемо видети да он игнорише други ред и само приказује вредност за Ц.
Горњи обрађивач грешака био је следећи наставак, сада ћемо користити Го то, где ћемо рећи екцелу одредиште да иде када наиђе на грешку. Запишите следећи код,
Шифра:
Суб Сампле2 () О грешци Иди на бк Дим и Ас Интегер, б Ас Интегер, ц Ас Интегер, д Ас Интегер и = 2 б = 0 ц = и + б МсгБок ц д = и / б МсгБок д
Бк је одредиште дато када наиђе на грешку након што мсгбок Д запише следећи код,
Шифра:
Суб Сампле2 () О грешци Иди на бк Дим и Као целобројно, б Као целобројно, ц Као целобројно, д Као целокупно и = 2 б = 0 ц = и + б МсгБок ц д = и / б МсгБок д ДОне: Екит Суб
Сада треба да дефинишемо одредиште Бк шта треба да ради када наиђе на грешку, па запишите следећи код,
Шифра:
Суб Сампле2 () О грешци Идемо на бк Дим и Као целобројно, б Као целобројно, ц Као целобројно, д Као целобројно и = 2 б = 0 ц = и + б МсгБок цд = и / б МсгБок д Урађено: Изађи из Суб бк: МсгБок „Ово је још једна грешка“ & Ерр.Десцриптион Енд Суб
Сада када извршавамо код можемо видети да нам екцел прво даје вредност за Ц.
Сада ћемо у следећем кораку добити упит који смо добили када наиђе на грешку.
Тако се бавимо уобичајеним грешкама у извршавању у програму Екцел ВБА.
Ствари које треба запамтити
Постоји неколико ствари које морамо имати на уму у вези са руковањем грешкама:
- На грешци Настави даље Игнорише грешку.
- Он Еррор ГоТо Даје Екцелу одредиште када наиђе на грешку.
- Опис се користи за приказ тачне грешке која се догодила кориснику.