Како занемарити грешке помоћу ВБА Он Еррор Ресуме Нект Статемент?

Екцел ВБА о грешци Настави даље

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

Они који редовно пишу кодове у екцелу ВБА знају да могу добити грешке чак и након писања стручних кодова, али желе да игноришу ту грешку и наставе да раде са следећим редовима кода. Типичан пример добијања поруке о грешци је када функција радног листа ВЛООКУП не пронађе вредност претраживања из низа табеле. Не враћа се # Н / А грешка; него ће бацити грешку. Као „Није могуће добити својство ВЛООКУП класе функције радног листа.“

Ако не знате зашто имамо ову грешку, онда је врло тешко исправити грешку. У ВБА имамо функцију под називом „ На грешци наставља се даље “.

Шта даље ради грешка у наставку ВБА?

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

Коришћењем изјаве ВБА Он Еррор Ресуме Нект можемо да занемаримо грешку и наставимо са следећим редом кода.

Пример # 1

Претпоставимо да имате много радних листова, а неке од њих скривате као део ВБА пројекта. На пример, испод су радни листови које имам на свом радном листу.

Написао сам кодове како бих сакрио листове „Продаја и добит“, а испод је код.

Шифра:

Суб Он_Еррор () Ворксхеетс ("Салес"). Висибле = клВериХидден Ворксхеетс ("Профит 2019"). Висибле = клВериХидден Ворксхеетс ("Профит"). Висибле = клВериХидден Енд Суб

Сада ћу почети да покрећем код ред по ред помоћу тастера Ф8 .

Ако још једном притиснем тастер Ф8 , сакриће се лист под називом „ Продаја “.

Притисните још једном тастер Ф8 и погледајте шта ће се догодити.

Добили смо грешку „Субсцрипт оут оф ранге“, јер тренутни ред кода каже следеће.

Радни листови („Добит 2019“). Видљиво = клВериХидден

Покушава да сакрије радни лист под називом „ Профит 2019 “, али не постоји радни лист под називом „Профит 2019“.

У тим случајевима, ако радни лист не постоји у радној свесци, треба да занемаримо грешку и наставимо да покрећемо код игноришући грешку „Субсцрипт оут оф ранге“.

Следећи ред у коду каже

Радни листови („Добит“). Видљиво = клВериХидден

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

Да бисмо игнорисали ову грешку, морамо да додамо изјаву „Погрешка наставља се даље“.

Шифра:

Суб Он_Еррор () На грешци Настави следеће радне листове ("Продаја"). Видљиво = клВериХидден Ворксхеетс ("Профит 2019"). Висибле = клВериХидден Ворксхеетс ("Профит").

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

Сада сам у реду у коме је претходно дата грешка, притисните тастер Ф8 и погледајте шта ће се догодити.

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

Пример # 2

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

Изнад прве табеле имамо две табеле које имају Емп Наме и њихове податке о зарадама у другој табели, а ми имамо само Емп Наме, тако да помоћу ВЛООКУП-а морамо да преузмемо детаље о плати из леве бочне табеле.

Испод је код који сам написао да дохватим детаље.

Шифра:

Суб Он_Еррор1 () Дим к Колико дуго траје к = 2 до 8 ћелија (к, 6) .Валуе = Функција радног листа.ВЛоокуп (ћелије (к, 5), опсег ("А: Б"), 2, 0) Следећи к Крај Суб

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

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

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

Друго име запосленог је „Гаиатхри“, али то име не постоји у првој табели, тако да функција ВБА ВЛООКУП не враћа грешку „# Н / А“ када ВЛООКУП не пронађе вредност претраживања из сто; него даје горњу поруку о грешци.

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

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

Шифра:

Суб Он_Еррор1 () Дим к Колико дуго траје к = 2 до 8 На грешци Наставите следеће ћелије (к, 6) .Валуе = ВорксхеетФунцтион.ВЛоокуп (ћелије (к, 5), опсег ("А: Б"), 2, 0 ) Следећи к Крај Суб

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

Два имена запослених, „ Гаиатхри & Каранвеер “, нису на листи, па су ти кодови редова сигурно наишли на грешку, јер смо додали изјаву обрађивача грешака „ Он Еррор Ресуме Нект “, игнорисала је ту линију кода и наставила за следећег запосленог.

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

  • „На следећем наставку грешке“ је изјава обрађивача грешака када треба да занемаримо познату грешку.
  • Ако желите занемарити поруку о грешци само за одређени скуп кода, затворите следећу изјаву о наставку грешке додавањем изјаве „ Он Еррор ГоТо 0 “.

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