Пры памылцы Аднавіць далей: апрацоўка памылак у Excel VBA

  • Падзяліцца Гэтым
Hugh West

У Microsoft Excel VBA апрацоўка памылак з'яўляецца адной з найважнейшых задач. Калі вы кодэр, вы ведаеце важнасць апрацоўкі памылак для стварэння ідэальнага прыкладання. Любая памылка ў заяве можа перашкодзіць вашаму коду VBA рознымі спосабамі. Такім чынам, вы павінны быць асцярожнымі пры апрацоўцы гэтых памылак падчас выканання кода VBA. Пры выкарыстанні кода VBA ў Excel можна сутыкнуцца з вялікай колькасцю памылак падчас выканання. Каб вырашыць адну з іх, мы выкарыстоўваем аператар Пры памылцы, працягвайце далей .

У гэтым уроку вы навучыцеся выкарыстоўваць аператар Пры памылцы, аднаўляйце далей у Excel VBA. Гэты падручнік будзе дакладны з адпаведнымі прыкладамі і належнымі ілюстрацыямі. Такім чынам, заставайцеся з намі.

Спампаваць Практычны сшытак

VBA пры памылцы Рэзюмэ Next.xlsm

Апрацоўка памылак у Excel VBA

Працуючы з Microsoft Excel VBA, вы сутыкнецеся з вялікай колькасцю памылак у падпрацэдуры. Калі VBA не можа выканаць аператар, ён выдае памылку падчас выканання.

Excel аўтаматычна спраўляецца з гэтымі памылкамі, таму, калі ўзнікае памылка падчас выканання, ён адлюстроўвае паведамленне пра памылку па змаўчанні, падобнае да наступнага:

Цяпер вы можаце абыходзіцца з гэтым па-рознаму з дапамогай некаторых аператараў VBA. Я абмяркую іх у наступных раздзелах.

Дадатковая інфармацыя: Як выправіць #REF! Памылка ў Excel (6 рашэнняў)

Заявы аб памылках у VBA

Для апрацоўкі памылак падчас выканання мы даем Excel інструкцыю аб заяўках аб памылках. Яно вырашаеof NAME Памылка ў Excel (10 прыкладаў)

💬 Што трэба памятаць

✎ Пры памылцы Аднавіць наступнае не выпраўляе памылкі. Ён у асноўным ігнаруе памылку і пераходзіць да наступнага аператара.

Excel перахоплівае і захоўвае памылкі падчас выканання ў аб'екце Err. Калі мы выкарыстоўваем аператар Пры памылцы, працягвайце далей , ён ачышчае ўласцівасці аб'екта Err.

Вы можаце адключыць Пры памылцы, працягвайце далей у вашым кодзе VBA ў Excel, дадаўшы аператар On Error GoTo 0 .

Выснова

У заключэнне я спадзяюся, што гэты падручнік даў вам шмат карыснага веданне выкарыстоўваць Пры памылцы, рэзюмаваць далей у Excel VBA. Я рэкамендую вам вывучыць і прымяніць усе гэтыя інструкцыі да вашага набору даных. Спампуйце вучэбны сшытак і паспрабуйце самі. Таксама не саромейцеся пакідаць водгукі ў раздзеле каментарыяў. Вашы каштоўныя водгукі падтрымліваюць нас у матывацыі ствараць такія навучальныя дапаможнікі.

Не забудзьцеся праверыць наш вэб-сайт Exceldemy.com для розных праблем і рашэнняў, звязаных з Excel.

Працягвайце вывучаць новыя метады і расці!

якія аперацыі мы хочам зрабіць далей неадкладна. У асноўным мы адключаем гэтыя памылкі такімі відамі апрацоўкі памылак.

Мы выкарыстоўваем тры віды аператараў (сінтаксіс) On Error у Excel VBA.

  • Пры памылцы GoTo радок
  • Пры памылцы Аднавіць далей
  • Пры памылцы GoTo 0

Калі вы выявіце памылку, выкарыстоўвайце каманду On Error. Таму што, калі вы не выкарыстоўваеце дэкларацыю On Error , гэтыя памылкі падчас выканання будуць катастрафічнымі. Ён пакажа паведамленне пра памылку і спыніць выкананне.

Калі мы выкарыстоўваем аператар On Error , мы ўключаем «уключаны» апрацоўшчык памылак. «Актыўны» апрацоўшчык памылак - гэта ўключаны апрацоўшчык, які запускае аперацыю апрацоўкі памылак. Калі памылка ўзнікае пры задзейнічанні апрацоўшчыка памылак, апрацоўшчык памылак бягучага метаду не можа вытрымаць памылку. Пасля гэтага кіраванне вяртаецца да працэдуры выкліку.

Калі ў працэсе выкліку ўключаны апрацоўшчык памылак, ён запускаецца для кіравання памылкай. Калі апрацоўшчык памылак вашай выклікаючай сістэмы задзейнічаны адпаведным чынам, кіраванне вяртаецца праз папярэднія працэдуры выкліку, пакуль не знойдзе ўключаны, але неактыўны апрацоўшчык памылак. Калі ён не можа знайсці апрацоўшчык памылак, які не працуе, гэта азначае, што памылка катастрафічная ў момант яе ўзнікнення.

Кожны раз, калі апрацоўшчык памылак вяртае паўнамоцтвы выклікаючай працэдуры, гэтая працэдура развівае існуючую працэдуру. Выкананне перазапускаецца ўцяперашняя працэдура ў момант, абраны аператарам Аднаўленне , калі апрацоўшчык памылак апрацоўвае памылкі ў любой працэдуры.

'Пры памылцы Аднавіць далей' у VBA

Цяпер, Пры памылцы Аднавіць далей заказ загадвае VBA ігнараваць любыя радкі кода з памылкамі і неадкладна пераходзіць да наступнага радка кода. Пасля гэтага коды Excel VBA прапусцяць радок або радкі, якія ўтрымліваюць памылкі, і пяройдуць да наступнай паслядоўнасці кода.

Аператар Пры памылцы, аднавіць далей прымушае рэалізацыю аднавіць з камандай, якая імгненна пераследуе радок кодаў, якія выклікалі памылку падчас выканання. Гэты аператар дазваляе прапусціць выкананне, нават калі ёсць памылка падчас выканання. Калі вы лічыце, што пэўны радок кода можа выклікаць памылку, змесціце працэдуру апрацоўкі памылак туды, а не размяшчайце яе ў іншым месцы працэдуры. Аператар Пры памылцы, аднавіць далей становіцца бяздзейным, калі ваш код выклікае іншую працэдуру. Такім чынам, калі вам патрэбна адпаведная апрацоўка памылак у гэтай працэдуры, вы павінны запусціць каманду Пры памылцы, аднавіць далей у кожным названым шаблоне.

Разумна, калі радок кода, які вы можна прапускаць не з'яўляецца неабходным для квітнеючай працы макраса. Але памятайце, што гэта можа нанесці шкоду, калі вы выкарыстоўваеце яго няправільна, бо гэта можа прывесці да непрадбачаных вынікаў.

Памятайце:

Укл. Памылка Аднавіць наступнае выказванне невыправіць памылкі выканання. Ён у асноўным ігнаруе памылкі, калі ваша выкананне VB аднаўляецца з аператара, які спарадзіў памылку выканання.

Зірніце на наступны код:

4844

Мы паспрабавалі падзяліць 5 з 0 і 1. Давайце запусцім код. Ён пакажа наступны вынік:

Ён стварае памылку падчас выканання. Мы не можам дзяліць лік на 0. Калі вы адладжваеце код, вы ўбачыце наступнае:

Калі праграма VB знаходзіць памылку, яна неадкладна спыняе працэдуру. Ён не выконвае наступны радок.

Цяпер давайце ўкаранім аператар Пры памылцы, аднавіць наступнае перад аператарам памылкі:

1439

Пасля выканання кода вы будзеце глядзіце наступнае:

Як бачыце, VBA ігнаруе радок, які выклікае памылку, і неадкладна пераходзіць да наступнага радка кода. Такім чынам, вы можаце выкарыстаць аператар Пры памылцы Аднавіць далей для апрацоўкі памылкі ў Excel VBA.

Прыклады «Пры памылцы Аднавіць далей» у VBA

У У наступных раздзелах я збіраюся даць вам два прыклады аператара Пры памылцы, аднавіць наступнае , які вы можаце ўкараніць у свой аркуш Excel з дапамогай VBA. Я рэкамендую вам вывучыць і прымяніць усё гэта ў сваёй працоўнай кніжцы. Гэта, безумоўна, павялічыць вашы веды ў Excel.

1. «Пры памылцы, працягвайце далей», каб схаваць працоўныя аркушы

У гэтым прыкладзе я пакажу вам код VBA, якісхавае ўсе працоўныя аркушы вашай актыўнай працоўнай кнігі.

Зірніце на наступны скрыншот:

Тут у нас ёсць чатыры працоўныя аркушы. Мы схаваем іх усе з дапамогай наступнага кода VBA:

9741

Калі вы выканаеце наступны код, вы ўбачыце наступную памылку падчас выканання:

Excel паказвае гэтую памылку, таму што вы не можаце схаваць усе аркушы ў кнізе. Такім чынам, вы павінны ігнараваць памылку. Каб зрабіць гэта, вы павінны рэалізаваць аператар On Error Resume Next у вашым радку кода.

2434

Пасля завяршэння выканання кода VBA вы ўбачыце наступны вынік:

У рэшце рэшт, вы не ўбачыце памылак пасля выканання. Такім чынам, наша заява On Error Resume Next працавала вельмі добра ў кодзе VBA.

Дадатковая інфармацыя: Памылкі ў Excel і іх значэнне (15 розных памылак)

2. Функцыя VLOOKUP з «Пры памылцы, працягне далей» у VBA

У гэтым прыкладзе я пакажу прыклад функцыі VLOOKUP у VBA . Цяпер гэты код VBA таксама ўключае аператар Пры памылцы, працягне далей .

Зірніце на наступны скрыншот:

Тут , вы можаце ўбачыць імёны некаторых людзей і іх узрост. У суседняй табліцы мы будзем выкарыстоўваць VLOOKUP , каб знайсці імя і ўзрост чалавека.

Каб зрабіць гэта, увядзіце наступны код:

8635

Зараз запусціце макрас . Вы ўбачыце наступную памылку:

Цяпер гэта час выкананняпамылка. Чаму так адбываецца? Паглядзіце на набор даных яшчэ раз:

Як бачыце, няма даных для «Аарон» і «Эма». Вось чаму ён выконвае VLOOKUP толькі для першага запісу. Пасля гэтага ён спыняе выкананне. Цяпер, калі вы жадаеце праігнараваць памылку і перайсці да пошуку астатніх узростаў, выкарыстоўвайце аператар Пры памылцы Аднавіць далей .

5156

Пасля запуску кода VBA вы ўбачыце наступны вынік:

Як бачыце, прымяніўшы каманду Пры памылцы, аднавіць далей , мы праігнаравалі памылку і знайшлі астатніх людзей узростаў. Наш код VBA не знайшоў даных пра Аарона і Эму. Вось чаму ён праігнараваў гэтыя значэнні і вярнуў астатнія значэнні на працоўным аркушы Excel.

Чытаць далей: [Выпраўлена] Excel знайшоў праблему з адной або некалькімі спасылкамі на формулы на гэтым працоўным аркушы

Выключыце «Пры памылцы, працягвайце далей» з Excel VBA

Цяпер вы можаце апынуцца ў сітуацыі, калі хочаце ігнараваць памылкі для пэўнага сегмента кода VBA. Памятайце, што калі вы выкарыстоўваеце аператар On Error Resume Next у кодзе VBA, усе памылкі пасля гэтага будуць прапушчаны. Цяпер, калі вы хочаце адключыць гэта і ўключыць апрацоўку памылак для іншага сегмента, выкарыстоўвайце Пры памылцы GoTo 0 . Гэта зноў уключыць апрацоўку памылак.

Агульнае выкарыстанне:

Sub error_handling()

Каб ігнараваць памылкі

Пры памылцы Аднавіць далей

// радкі кодаў

Камууключыце апрацоўку памылак

Пры памылцы GoTo 0

//радкі кодаў

End sub

Зірніце на наступны код VBA:

4704

Раней мы выкарыстоўвалі код для функцыі VLOOKUP . Тут дададзены дадатковы фрагмент кода, каб прадэманстраваць вам. Наш код будзе ігнараваць памылкі пры выкананні VLOOKUP , але ён будзе актываваць апрацоўку памылак пасля On Error GoTo 0 аператара.

Дадатковая інфармацыя: Excel VBA: адключыць «Пры памылцы, працягваць далей»

VBA «Пры памылцы GoTo»

Раней я абмяркоўваў апрацоўка памылак метадам On Error. Увесь наш артыкул быў прысвечаны Пры памылцы, рэзюмэ далей. Існуюць таксама два тыпы апрацоўкі памылак, якія я буду абмяркоўваць у наступных раздзелах.

1. VBA пры памылцы GoTo 0

Пры памылцы Goto 0 statement - гэта ўбудаваная налада Excel, калі ў вашых кодах няма апрацоўшчыка памылак. У асноўным гэта азначае, што калі VBA знаходзіць памылку з On Error GoTo 0 , ён спыняе выкананне кода і паказвае традыцыйнае акно паведамлення пра памылку.

On Error GoTo 0<2 Аператар> у асноўным адключае апрацоўку памылак у гэтай працэдуры. Ён не вызначае радок 0 як пачатак кода апрацоўкі памылак, нават калі метад уключае радок з нумарам 0.

Зірніце на наступны код:

6532

У нас ёсць ужо паказаў вам гэты код. Гэты код у асноўным хавае ўсе працоўныя лістыу вашай бягучай працоўнай кніжцы. Цяпер у мяне сапраўды ёсць дадатковы фрагмент кода з Пры памылцы GoTo 0 , каб паказаць памылку. Калі вы запусціце код, вы ўбачыце наступнае:

Гэта паказвае памылку, таму што мы не можам мець аркушы з такім жа імем у актыўнай кнізе.

2. VBA On Error GoTo радок

Цяпер вы таксама можаце даручыць Excel запусціць іншы сегмент кода, калі ён знаходзіць памылку, выкарыстоўваючы On Error GoTo радок . Ён загадвае Excel выканаць што-небудзь пасля выяўлення памылкі.

Аргумент радка - гэта любы радковы тэг або нумар радка. Калі наш код выклікае якую-небудзь памылку падчас выканання, ён перамесціцца ў радок, у выніку чаго апрацоўшчык памылак будзе актыўны пры выкананні. Памятайце, што ваш вызначаны радок павінен знаходзіцца ў той самай працэдуры, што і аператар On Error; інакш гэта выкліча памылку кампіляцыі.

Зірніце на наступны код:

6419

Вы бачылі код у папярэднім прыкладзе. Калі мы выкарыстоўвалі On Error GoTo 0 , гэта выклікала памылку. Але тут мы замянілі гэта аператарам On Error GoTo line .

Зараз запусціце код, і вы ўбачыце наступнае:

Як бачыце, стандартнае дыялогавае акно памылак не паказвае. Замест гэтага ён паказвае карыстацкае поле паведамлення, якое мы стварылі ў сегменце error_handler . Калі Excel знаходзіць памылку, ён пераходзіць да сегмента error_handler і паказвае нам поле паведамлення.

Мы таксама выкарыстоўвалі Exit Sub у працэдуры.Калі аркуша з назвай « VLOOKUP » няма, наш код VBA перайменуе актыўны аркуш. Затым мы павінны скончыць выкананне тут, таму што нам не трэба пераходзіць да апрацоўшчыка памылак і паказваць акно паведамлення.

VBA 'Пры памылцы' не працуе ў Excel

Часам, як бы вы ні стараліся, метад On Error не спрацуе. Раней мы рэалізавалі метад Пры памылцы для апрацоўкі памылак. Але часам будуць паказвацца памылкі, нават калі вы выкарыстоўваеце Пры памылцы Працягнуць далей або Пры памылцы Перайсці да 0 . У вашым кодзе можа быць некалькі прычын, якія вы павінны выправіць. Я не збіраюся вам гэтага паказваць.

Асноўная прычына таго, што VBA ' Пры памылцы' не працуе ў Excel, заключаецца ў тым, што ў Excel уключана опцыя «Разрыў пры ўсіх памылках».

Выканайце наступныя крокі, каб вырашыць гэта:

📌 Крокі

  • Спачатку націсніце Alt+F11 на клавіятуры, каб адкрыйце рэдактар ​​VBA.
  • Зараз націсніце Інструменты > Параметры.

  • Пасля гэтага націсніце на ўкладку Агульныя ў дыялогавым акне Параметры поле.

  • Тут вы бачыце, што « Разрыў пры ўсіх памылках » ужо адзначаны. Гэта ў асноўным перашкаджае вам апрацоўваць памылкі.
  • Каб змяніць гэта, абярыце опцыю « Прыпынак пры неапрацаваных памылках » і націсніце ОК .

Я спадзяюся, што гэта выправіць вашу праблему VBA «On Error», якая не працуе ў Excel.

Дадатковая інфармацыя: Прычыны і выпраўленні

Х'ю Уэст з'яўляецца вельмі дасведчаным трэнерам і аналітыкам Excel з больш чым 10-гадовым вопытам работы ў галіны. Ён мае ступень бакалаўра ў галіне бухгалтарскага ўліку і фінансаў і ступень магістра дзелавога адміністравання. Х'ю захапляецца навучаннем і распрацаваў унікальны падыход да навучання, які лёгка прытрымлівацца і зразумець. Яго экспертныя веды Excel дапамаглі тысячам студэнтаў і спецыялістаў па ўсім свеце палепшыць свае навыкі і атрымаць поспех у сваёй кар'еры. Праз свой блог Х'ю дзеліцца сваімі ведамі з усім светам, прапаноўваючы бясплатныя падручнікі па Excel і онлайн-трэнінгі, каб дапамагчы прыватным асобам і прадпрыемствам цалкам раскрыць свой патэнцыял.