Алдааны талаар үргэлжлүүлэх Дараа нь: Excel VBA дээр ажиллах алдаа

  • Үүнийг Хуваалц
Hugh West

Агуулгын хүснэгт

Microsoft Excel VBA-д алдаа засах нь чухал ажлуудын нэг юм. Хэрэв та кодлогч бол төгс програм бүтээхийн тулд алдаатай ажиллахын чухлыг мэддэг. Мэдэгдэл дэх аливаа алдаа нь таны VBA кодыг олон талаар саатуулж болно. Тиймээс, та VBA кодыг ажиллуулахдаа эдгээр алдаануудыг болгоомжтой хийх хэрэгтэй. Excel дээр VBA кодыг ашиглах явцад танд маш олон тооны алдаа гардаг. Тэдгээрийн аль нэгийг шийдэхийн тулд бид Дараагийн алдааг үргэлжлүүлэх хэллэгийг ашигладаг.

Энэ зааварт та Excel програмын Дараагийн алдааг үргэлжлүүлэх хэллэгийг ашиглаж сурах болно. VBA. Энэ заавар нь тохиромжтой жишээ, зохих чимэглэлтэй байх болно. Тиймээс бидэнтэй хамт байгаарай.

Дадлага хийх номыг татаж авах

VBA On Error On Resume Next.xlsm

Excel-д алдаа засах VBA

Microsoft Excel VBA-тай ажиллах явцад та дэд процедурт маш олон алдаатай тулгарах болно. VBA мэдэгдлийг гүйцэтгэх боломжгүй үед энэ нь ажиллах үеийн алдаа гаргадаг.

Excel нь эдгээр алдааг автоматаар шийддэг тул ажиллах үеийн алдаа гарах үед дараах байдлаар өгөгдмөл алдааны мессежийг харуулдаг:

Одоо та эдгээрийг зарим VBA хэллэгээр янз бүрээр шийдэж болно. Би тэдгээрийг дараагийн хэсгүүдэд хэлэлцэх болно.

Дэлгэрэнгүй унших: Хэрхэн #REF засах вэ! Excel-ийн алдаа (6 шийдэл)

VBA дахь алдааны мэдэгдлүүд

Ажиллах хугацааны алдааг зохицуулахын тулд бид Excel-д On Error мэдэгдлийг зааж өгнө. Энэ нь шийддэгExcel дээрх NAME-н алдаа (10 жишээ)

💬 Санах зүйл

✎ Дараачийн алдааг үргэлжлүүлэх нь алдааг засдаггүй. Энэ нь үндсэндээ алдааг үл тоомсорлож, дараагийн мэдэгдэл рүү шилждэг.

Excel нь ажиллах үеийн алдааг Err объектод барьж хадгалдаг. Бид On Error Resume Next хэллэгийг ашиглах үед энэ нь Err объектын шинж чанарыг арилгадаг.

Та Дараагийн алдааг үргэлжлүүлэх -г унтрааж болно. Excel-ийн VBA кодонд Алдаа шилжих 0 мэдэгдлийг нэмж оруулаарай.

Дүгнэлт

Төгсгөлд нь энэ заавар танд хэрэгтэй зүйл өгсөн гэж найдаж байна. Excel VBA програмын Алдааны тухай үргэлжлүүлэх -г ашиглах мэдлэг. Би танд эдгээр бүх зааврыг сурч, өгөгдлийн багцдаа хэрэгжүүлэхийг зөвлөж байна. Дадлага хийх ажлын номыг татаж аваад өөрөө туршиж үзээрэй. Мөн коммент хэсэгт санал хүсэлтээ үлдээгээрэй. Таны үнэ цэнэтэй санал хүсэлт бидэнд иймэрхүү хичээлүүдийг бүтээх урам зориг өгдөг.

Excel-тэй холбоотой янз бүрийн асуудал, шийдлүүдийг манай вэб сайтаас Exceldemy.com шалгахаа бүү мартаарай.

Шинэ арга барилд суралцаж, өссөөр байна!

дараа нь бид ямар төрлийн үйлдлүүдийг яаралтай хийхийг хүсч байна. Үндсэндээ бид эдгээр алдааг ийм төрлийн алдаатай харьцах замаар идэвхгүй болгодог.

Бид Excel VBA дээр гурван төрлийн On Error мэдэгдлийг (синтакс) ашигладаг.

  • Алдаа очиход мөр
  • Алдаа дараагийн үргэлжлүүлэх
  • Алдаа 0-д шилжих

Алдаа олдвол On Error командыг ашиглана уу. Учир нь хэрэв та Алдааны тухай мэдэгдлийг ашиглахгүй бол тэдгээр ажиллах үеийн алдаанууд нь сүйрэлтэй байх болно. Энэ нь алдааны сануулга харуулж, гүйцэтгэлийг зогсооно.

Бид Алдаа мэдэгдлийг ашиглах үед бид "идэвхжүүлсэн" алдаа зохицуулагчийг асаана. "Идэвхтэй" алдаа зохицуулагч нь алдаа засах үйлдлийг эхлүүлдэг идэвхжүүлсэн зохицуулагч юм. Хэрэв алдаа гаргагч ажиллаж байх үед алдаа гарвал одоогийн аргын алдаа гаргагч алдааг тэсвэрлэж чадахгүй. Үүний дараа удирдлага нь дуудлагын горим руу буцна.

Хэрэв дуудлага хийх процесст алдаа гаргагч идэвхжсэн бол энэ нь алдааг удирдахын тулд идэвхждэг. Хэрэв таны дуудлагын системийн алдаа зохицуулагч ажиллаж байгаа бол удирдлага нь идэвхжүүлсэн боловч идэвхгүй алдаа гаргагчийг олох хүртэл өмнөх дуудлагын процедурын тусламжтайгаар буцааж өгдөг. Хэрэв энэ нь идэвхгүй байгаа алдаа зохицуулагчийг олж чадахгүй бол энэ нь алдаа гарах цэг дээрээ сүйрлийн шинжтэй байна гэсэн үг.

Алдаа зохицуулагч нь дуудах процедурт эрх өгөх болгонд уг процедур одоо байгаа процедурыг хөгжүүлдэг. Гүйцэтгэл нь дотор дахин эхэлнэАлдаа гаргагч аливаа процедурын алдааг зохицуулах үед Resume хэллэгээр сонгогдсон тухайн мөчид одоогийн процедурыг ажиллуулна.

VBA дахь 'Алдааг үргэлжлүүлэх тухай'

Одоо Дараагийн алдааг үргэлжлүүлэх тухай мэдэгдэл нь VBA-д алдаатай кодын мөрүүдийг үл тоомсорлож, дараагийн кодын мөрөнд нэн даруй шилжихийг хэлдэг. Үүний дараа Excel VBA кодууд нь алдаа агуулсан мөр эсвэл мөрүүдийг алгасаж, дараах кодын дараалал руу шилжинэ.

Алдааг үргэлжлүүлэх тухай мэдэгдэл нь хэрэгжилтийг дараах байдлаар гүйцэтгэхийг шаарддаг. Ажиллах үеийн алдааг үүсгэсэн кодын мөрийг нэн даруй дагаж тушаалаар үргэлжлүүлнэ үү. Энэ мэдэгдэл нь ажиллах үеийн алдаа гарсан ч гүйцэтгэлийг алгасах боломжийг олгодог. Хэрэв та кодын тодорхой мөр алдаа гаргаж болзошгүй гэж бодож байвал процедурын өөр байршилд байрлуулахын оронд алдаатай ажиллах горимыг тэнд байрлуул. Таны код өөр процедурыг дуудах үед Дараагийн алдааг үргэлжлүүлэх мэдэгдэл идэвхгүй болно. Тиймээс, тухайн горимд тохирох алдаатай харьцах шаардлагатай үед та нэрлэсэн загвар бүр дээр Алдааг үргэлжлүүлэх дараагийн командыг ажиллуулах хэрэгтэй.

Таны кодын мөрийг ашиглах нь зүйтэй юм. алгасах нь макро цэцэглэн хөгжих шаардлагагүй юм. Гэхдээ та үүнийг буруу хэрэглэвэл энэ нь хүсээгүй үр дүнд хүргэж болзошгүйг санаарай.

Санамж:

The On Алдаа үргэлжлүүлэх Дараагийн мэдэгдэлд байхгүйажиллах үеийн алдааг засах. Энэ нь үндсэндээ ажиллах үеийн алдаа үүсгэсэн мэдэгдлээс таны VB гүйцэтгэлийг үргэлжлүүлэх алдааг үл тоомсорлодог.

Дараах кодыг харна уу:

8883

Бид 5-ыг хуваахыг оролдсон. 0 ба 1-тэй. Кодоо ажиллуулъя. Энэ нь дараах гаралтыг харуулах болно:

Энэ нь ажиллах үеийн алдаа гаргадаг. Бид тоог 0-д хуваах боломжгүй. Та кодыг дибаг хийх үед дараах зүйлийг харах болно:

VB программ алдаа олвол тэр даруй процедурыг зогсооно. Энэ нь дараах мөрийг гүйцэтгэдэггүй.

Одоо алдааны мэдэгдлийн өмнө On Error Resume Next мэдэгдлийг хэрэгжүүлье:

6961

Кодыг ажиллуулсны дараа та дараахыг үзнэ үү:

Таны харж байгаагаар VBA нь алдаа гаргаж буй мөрийг үл тоомсорлож, дараах кодын мөрөнд шууд шилждэг. Ийм маягаар та Excel VBA дээрх алдааг засахын тулд On Error Resume Next мэдэгдлийг ашиглаж болно.

VBA-н "Дараагийн алдааг үргэлжлүүлэх"-ийн жишээ

Д Дараах хэсгүүдэд би танд VBA-г ашиглан Excel-ийн ажлын хуудсанд хэрэгжүүлэх Дараагийн алдааг үргэлжлүүлэх мэдэгдлийн хоёр жишээг өгөх гэж байна. Энэ бүгдийг сурч, ажлын дэвтэртээ хэрэгжүүлэхийг танд зөвлөж байна. Энэ нь таны Excel-ийн мэдлэгийг нэмэгдүүлэх нь дамжиггүй.

1. Ажлын хуудсыг нуух тухай ‘ Error Resume Next ‘ мэдэгдэл

Одоо энэ жишээн дээр би танд VBA кодыг үзүүлэх болно.Таны идэвхтэй ажлын дэвтрийн бүх ажлын хуудсыг нуух болно.

Дараах дэлгэцийн агшинг харна уу:

Энд бидэнд дөрвөн ажлын хуудас байна. Дараах VBA кодыг ашиглан бид бүгдийг нь нуух болно:

4525

Та дараах кодыг ажиллуулах үед дараах ажиллах үеийн алдааг харах болно:

Та ажлын дэвтрийн бүх хуудсыг нуух боломжгүй тул Excel энэ алдааг харуулж байна. Тиймээс та алдааг үл тоомсорлох хэрэгтэй. Үүнийг хийхийн тулд та кодын мөрөнд On Error Resume Next хэллэгийг хэрэгжүүлэх хэрэгтэй.

9963

VBA кодыг гүйцэтгэсний дараа та дараах гаралтыг харах болно:

Эцэст нь та гүйцэтгэлийн дараа ямар ч алдаа харахгүй. Тиймээс, бидний On Error Resume Next мэдэгдэл VBA код дээр үнэхээр сайн ажилласан.

Дэлгэрэнгүй унших: Excel дээрх алдаанууд ба тэдгээрийн утга (15 өөр алдаа)

2. VBA дахь 'On Error Resume Next'-тэй VLOOKUP функц

Энэ жишээнд би VBA дээрх VLOOKUP функцийн жишээг харуулах болно. Одоо энэ VBA код нь Дараагийн алдааг үргэлжлүүлэх мэдэгдлийг агуулж байна.

Дараах дэлгэцийн агшинг харна уу:

Эндээс , та зарим хүмүүсийн нэр, насыг харж болно. Зэргэлдээх хүснэгтэд бид хүний ​​нэр, насыг олохын тулд VLOOKUP г ашиглана.

Үүнийг хийхийн тулд дараах кодыг бичнэ үү:

4187

Одоо макро ажиллуулна уу. . Та дараах алдааг харах болно:

Одоо энэ бол ажиллах хугацааалдаа. Яагаад ийм зүйл болдог вэ? Датасетийг дахин харна уу:

Таны харж байгаагаар “Аарон” болон “Эмма” гэсэн мэдээлэл байхгүй байна. Тийм ч учраас энэ нь зөвхөн эхний оруулгад зориулж VLOOKUP -г гүйцэтгэдэг. Үүний дараа энэ нь гүйцэтгэлийг зогсооно. Одоо, хэрэв та алдааг үл тоомсорлож, үлдсэн насаа олохыг хүсвэл On Error Resume Next мэдэгдлийг ашиглана уу.

4812

VBA кодыг ажиллуулсны дараа та дараахийг харах болно. дараах гаралт:

Таны харж байгаагаар Алдааны талаар үргэлжлүүлэх командыг хэрэглэснээр бид алдааг үл тоомсорлож, бусад хүмүүсийг оллоо. нас. Манай VBA код Аарон, Эмма нарын мэдээлэл олдсонгүй. Тийм ч учраас тэдгээр утгуудыг үл тоомсорлож, Excel-ийн ажлын хуудасны бусад утгыг буцаалаа.

Дэлгэрэнгүй унших: [Засварласан] Excel энэ ажлын хуудаснаас нэг буюу хэд хэдэн томьёоны лавлагаанд асуудал олсон байна

Excel VBA-тай "Дараагийн алдааг үргэлжлүүлэх"-ийг унтраа. Хэрэв та VBA кодонд On Error Resume Next мэдэгдлийг ашиглавал дараа нь гарсан бүх алдааг алгасах болно гэдгийг санаарай. Одоо, хэрэв та үүнийг унтрааж, өөр сегментийн алдаатай ажиллахыг идэвхжүүлэхийг хүсвэл On Error GoTo 0 -г ашиглана уу. Энэ нь дахин алдаа засахыг идэвхжүүлнэ.

Ерөнхий хэрэглээ:

Дэд error_handling()

Алдааг үл тоомсорлох

Дараа нь үргэлжлүүлэх алдаа

// кодын мөрүүд

ХэндError handling-г асаана дараах VBA код:

1365

Бид өмнө нь кодыг VLOOKUP функцид ашиглаж байсан. Энд танд харуулах нэмэлт кодыг нэмсэн. Манай код VLOOKUP г гүйцэтгэх явцад гарсан алдааг үл тоомсорлох боловч On Error GoTo 0 мэдэгдлийн дараа алдаа засах ажиллагааг идэвхжүүлнэ.

Дэлгэрэнгүй унших: Excel VBA: "Дараагийн алдааг үргэлжлүүлэх"-г унтраах

VBA 'On Error GoTo'

Өмнө нь би ярилцаж байсан. On Error аргыг ашиглан алдааг засах. Манай нийтлэл бүхэлдээ Дараагийн алдааг үргэлжлүүлэх тухай байсан. Одоо бас хоёр төрлийн алдаатай харьцах арга байгаа бөгөөд эдгээрийг би дараагийн хэсгүүдэд авч үзэх болно.

1. VBA On Error GoTo 0

The On Error Goto 0 хэрэв таны кодуудад алдаа зохицуулагч байхгүй бол мэдэгдэл нь Excel-ийн суулгасан тохиргоо юм. Энэ нь үндсэндээ VBA нь Алдаа 0 -д алдаа олох үед кодыг ажиллуулахаа зогсоож, уламжлалт алдааны мессежийн хайрцгийг харуулна гэсэн үг юм.

Алдаа 0<2-д шилжих үед> мэдэгдэл нь үндсэндээ одоогийн процедурын алдаатай ажиллахыг унтраадаг. Хэдийгээр энэ арга нь 0 дугаартай мөрийг агуулж байсан ч 0 мөрийг алдаа засах кодын эхлэл гэж тодорхойлдоггүй.

Дараах кодыг харна уу:

3882

Бидэнд байгаа Энэ кодыг танд аль хэдийн үзүүлсэн. Энэ код нь үндсэндээ бүх ажлын хуудсыг нуудагТаны одоогийн ажлын дэвтэрт. Одоо надад алдааг харуулах On Error GoTo 0 гэсэн нэмэлт код байгаа. Хэрэв та кодыг ажиллуулбал дараахыг харах болно:

Идэвхтэй ажлын дэвтэрт ижил нэртэй хуудас байх боломжгүй тул энэ алдааг харуулж байна.

2. VBA On Error GoTo line

Одоо та Excel-д On Error GoTo мөр -г ашиглан алдаа олсон тохиолдолд кодын өөр хэсгийг ажиллуулахыг зааж өгч болно. Энэ нь Excel-д алдаа олсны дараа ямар нэг зүйлийг гүйцэтгэхийг хэлдэг.

Мөрийн аргумент нь дурын мөрийн тэмдэг эсвэл мөрийн дугаар юм. Хэрэв бидний код нь ажиллах үеийн алдаа гарвал энэ нь мөр рүү шилжиж, алдаа гаргагчийг гүйцэтгэлд идэвхжүүлнэ. Таны тодорхойлсон мөр нь алдааны тухай мэдэгдэлтэй яг ижил горимд байх ёстой гэдгийг санаарай; эс бөгөөс эмхэтгэх алдаа гарна.

Дараах кодыг харна уу:

3285

Та өмнөх жишээн дээрх кодыг харсан. Бид On Error GoTo 0 -г ашиглах үед алдаа гарсан. Гэхдээ энд бид үүнийг On Error GoTo мөрийн мэдэгдэлээр сольсон.

Одоо кодыг ажиллуулбал та дараахыг харах болно:

Таны харж байгаагаар энэ нь бидэнд стандарт алдааны харилцах цонхыг харуулахгүй байна. Үүний оронд энэ нь error_handler сегментэд бидний үүсгэсэн захиалгат мессежийн хайрцгийг харуулж байна. Excel нь ямар нэгэн алдаа олсон тохиолдолд error_handler сегмент рүү шилжиж, бидэнд мессежийн хайрцгийг харуулна.

Бид мөн процедурт Exit Sub -г ашигласан.Хэрэв “ VLOOKUP ” нэртэй хуудас байхгүй бол манай VBA код идэвхтэй хуудасны нэрийг өөрчлөх болно. Дараа нь бид энд алдаа гаргагч руу очиж мессежийн хайрцгийг харуулах шаардлагагүй тул гүйцэтгэлийг дуусгах ёстой.

VBA 'On Error' Excel дээр ажиллахгүй байна

Заримдаа, Та хичнээн хичээсэн ч On Error арга ажиллахгүй. Өмнө нь бид алдааг засахын тулд On Error аргыг хэрэгжүүлсэн. Гэхдээ заримдаа Дараагийн алдааг үргэлжлүүлэх эсвэл 0-д шилжих алдаа -г ашигласан ч энэ нь алдаа харуулах болно. Таны кодонд засах шаардлагатай хэд хэдэн шалтгаан байж болно. Би үүнийг танд үзүүлэхгүй.

VBA ' Алдаа' Excel дээр ажиллахгүй байгаагийн үндсэн шалтгаан нь Excel-ийн "Бүх алдааг таслах" сонголтыг асаасан явдал юм.

Үүнийг шийдэхийн тулд дараах алхмуудыг дагана уу:

📌 Алхам

  • Эхлээд гар дээрх Alt+F11 товчийг дарж VBA засварлагчийг нээнэ үү.
  • Одоо Хэрэгслүүд > Сонголтууд.

  • Үүний дараа Сонголтууд харилцах цонхны Ерөнхий таб дээр дарна уу. хайрцаг.

  • Эндээс " Бүх алдааг таслах " аль хэдийн сонгогдсон байгааг харж болно. Энэ нь таныг алдаатай ажиллахаас үндсэндээ сэргийлдэг.
  • Үүнийг өөрчлөхийн тулд “ Ачаалаагүй алдааг таслах ” сонголтыг сонгоод OK дээр дарна уу.

Энэ нь Excel дээр ажиллахгүй байгаа VBA "On Error"-ийн асуудлыг засна гэж найдаж байна.

Дэлгэрэнгүй унших: Шалтгаан болон Залруулга

Хью Уэст бол салбартаа 10 гаруй жил ажилласан туршлагатай Excel-ийн сургагч багш, шинжээч юм. Нягтлан бодох бүртгэл, санхүүгийн чиглэлээр бакалавр, бизнесийн удирдлагын магистр зэрэгтэй. Хью багшлах сонирхолтой бөгөөд дагаж мөрдөх, ойлгоход хялбар заах өвөрмөц арга барилыг боловсруулсан. Түүний Excel-ийн мэдлэг чадвар нь дэлхий даяарх олон мянган оюутан, мэргэжилтнүүдэд ур чадвараа дээшлүүлж, ажил мэргэжлээрээ амжилт гаргахад тусалсан. Хью өөрийн блогоороо дамжуулан өөрийн мэдлэгээ дэлхийтэй хуваалцаж, Excel програмын үнэгүй зааварчилгаа, онлайн сургалтыг хувь хүмүүс болон бизнесүүдэд бүрэн дүүрэн ашиглахад нь туслах зорилгоор санал болгодог.