Грешка ВБА

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

Како се користи Екцел ВБА о изјави о грешци у Екцелу?

Постоје 3 начина грешке у ВБА. Да разумемо различите начине са неким примерима.

Пример # 1

Прва врста грешке је грешка у састављању кода која долази када код није проглашен или немогућим променљивим. Да бисмо разумели више, користићемо једноставан математички израз поделе. За то идите на мени Уметање ВБА и изаберите Модул као што је приказано у наставку.

Сада отворите поткатегорију и додајте било које име. Као што користимо Он Еррор, тако смо и именовали исто.

 Суб ОнЕррор () Крај Суб 

Сада дефинишите било која 2 или 3 цела броја. Овде имамо Кс и И као Интегерс.

 Суб ОнЕррор () Дим Кс као цео број, И као цео број, З као цео број крај Суб 

Као што је горе дискутирано, израчунаћемо математички израз поделе. За Кс ћемо ставити лик у Нумератор и поделити га 0. И И ће бити 20/2 што је потпуни број.

 Суб ОнЕррор () Дим Кс као цео број, И као цели број Кс = тест / 0 И = 20/2 крајњи пот 

Сада покрените код помоћу Ф5 тастера или кликом на дугме за репродукцију као што је приказано у наставку. Добићемо грешку извођења 6, која показује грешку „Текст преко броја“.

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

 Суб ОнЕррор () Дим Кс као цео број, И као цео број на грешци Настави Следећи Кс = Тест / 0 И = 20/2 МсгБок Кс МсгБок И Крај Пот 

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

Пример бр. 2

У овом примеру ћемо узети у обзир да математичка подела која даје бесконачан резултат, али кодирањем, даје # ДИВ / 0 резултат. Да бисмо то демонстрирали размотрићемо још један цео број З заједно са Кс и И у подкатегорији као што је приказано у наставку.

 Суб ОнЕррор () Дим Кс као цео број, И као цео број, З као цео број крај Суб 

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

Испод за Интегер Кс поделили смо 10 на 0, 20 на 2 и 30 на 4.

 Суб ОнЕррор () Дим Кс као цео број, И као цео број, З као цео број Кс = 10/0 И = 20/2 З = 30/4 МсгБок Кс МсгБок И МсгБок З Крај Суб 

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

Као што видимо на горњој слици грешка у току рада 11, што значи да је грешка повезана са бројем. Сада да бисте превладали ово додајте једну линију Он Еррор Ресуме Нект пре математичког израза као што је приказано у наставку.

 Суб ОнЕррор () Дим Кс као цео број, И као цео број, З као цео број на грешци Настави даље Кс = 10/0 И = 20/2 З = 30/4 МсгБок Кс МсгБок И МсгБок З Крај Суб 

Ако покренемо код, за први цели број Кс добит ћемо нулу, а за И и З добит ћемо одговарајуће одговоре поделе као што је приказано у наставку.

Пример бр. 3

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

 Суб ОнЕррор () Дим Кс као цео број, И као цео број, З као цео број крај Суб 

Сада такође размотримо исту математичку поделу коју смо видели у горњем примеру.

 Суб ОнЕррор () Дим Кс као цео број, И као цео број, З као цео број Кс = 10/0 И = 20/2 З = 30/4 МсгБок Кс МсгБок И МсгБок З Крај Суб 

Ако покренемо код, добићемо исту поруку о грешци у току 11.

Сада да надјачате ову грешку, користите текст Он Еррор ГоТо са речом „„ Резултат за прескакање поруке о грешци и добијање резултата који добро функционише као што је приказано у наставку.

 Суб ОнЕррор () Дим Кс као цео број, И као цео број, З као цео број на грешци ГоТо ЗРесулт: Кс = 10/0 И = 20/2 ЗРесулт: З = 30/4 МсгБок Кс МсгБок И МсгБок З Крај Суб 

Сада поново покрените код. Добићемо исти резултат као у претходном примеру.

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

Пример бр. 4

У трећој врсти грешке када покренемо код и ВБА није у стању да разуме линију кода. То се може учинити уз помоћ кода Он Еррор Ресуме Нект заједно са МсгБок Ерр.Нумбер . Размотрите исте податке као и у горњим примерима. Поново ћемо видети иста три цела броја Кс, И и З као што је приказано у наставку.

 Суб ОнЕррор () Дим Кс као цео број, И као цео број, З као цео број крај Суб 

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

 Суб ОнЕррор () Дим Кс као цео број, И као цео број, З као цео број Кс = 10/0 И = 20/2 З = 30/4 МсгБок Кс МсгБок И МсгБок З Крај Суб 

Ако покренемо комплетан код, добићемо поруку о грешци математичке грешке Грешка времена извођења 11.

Сада да надокнадимо ову грешку користићемо Он Еррор Ресуме Нект.

 Суб ОнЕррор () Дим Кс као цео број, И као цео број, З као цео број на грешци Настави даље Кс = 10/0 И = 20/2 З = 30/4 МсгБок Кс МсгБок И МсгБок З Крај Суб 

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

Сада додајте линију кода ЗРесулт пре математичког израза З целобројне поделе и додајте линију кода МсгБок Ерр.Нумбер на крају кода као што је приказано у наставку.

 Суб ОнЕррор () Дим Кс као цео број, И као цео број, З као цео број на грешци Настави даље Кс = 10/0 И = 20/2 ЗРесулт: З = 30/4 МсгБок Кс МсгБок И МсгБок З МсгБок Ерр.Нумбер Енд Суб 

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

Као што видимо на горњим снимкама екрана. Прво поље има 0, што је прекорачење погрешног математичког израза. Други и трећи резултат су дељења И и З целих бројева. И последња кутија порука садржи код грешке времена 11 који је вероватно код грешке у изразима дељења Кс целог броја.

Прос ВБА о грешци

  • Можемо израчунати било коју математичку формулу, чак и ако је тачна.
  • За веће структуре кодирања где постоје шансе или имају грешке, коришћење ових метода може дати тачан резултат чак и међу линијама кодова.
  • Ово даје бољи резултат у односу на резултат добијен нормалним екцел прорачунима.

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

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

Можете преузети овај ВБА Он Еррор Екцел предложак овде - ВБА Он Еррор Екцел предложак

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

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

  1. Како се користи ВБА ТРИМ функција?
  2. Формат броја у ВБА
  3. Водич за Екцел ВБА „Док траје петља“
  4. Како се користи ВБА функција за проналажење?

Категорија: