Enhavtabelo
En Microsoft Excel VBA, erartraktado estas unu el la kritikaj taskoj. Se vi estas kodisto, vi scias la gravecon de erartraktado por konstrui perfektan aplikaĵon. Ajna eraro en deklaro povas malhelpi vian VBA-kodon en multaj manieroj. Do, vi devas esti singarda pritrakti tiujn erarojn dum plenumado de VBA-kodo. Estas multaj rultempaj eraroj, kiujn vi povas alfronti dum vi uzas la VBA-kodon en Excel. Por solvi unu el ili, ni uzas la deklaron On Error Resume Next .
En ĉi tiu lernilo, vi lernos uzi la deklaron On Error Resume Next en Excel. VBA. Ĉi tiu lernilo estos ĝusta kun taŭgaj ekzemploj kaj taŭgaj ilustraĵoj. Do, restu ĉe ni.
Elŝutu Praktikan Laborlibron
VBA On Error Resume Next.xlsm
Erartraktado en Excel VBA
Dum vi laboras kun Microsoft Excel VBA, vi renkontos multajn erarojn en via subprocedo. Kiam VBA ne povas efektivigi deklaron, ĝi ĵetas rultempan eraron.
Excel aŭtomate traktas ĉi tiujn erarojn, do kiam rultempa eraro aperas, ĝi montras defaŭltan erarmesaĝon kiel la jena:
Nun, vi povas trakti ĉi tiujn diverse per iuj VBA-deklaroj. Mi diskutos ilin en pli postaj sekcioj.
Legu Pli: Kiel Ripari #REF! Eraro en Excel (6 Solvoj)
Pri Eraraj deklaroj en VBA
Por pritrakti rultempajn erarojn, ni instrukcias Excel per la deklaro pri Eraro. Ĝi decidasde NOMO-Eraro en Excel (10 Ekzemploj)
💬 Aferoj por Memori
✎ En Eraro Rekomenci Sekva ne riparas la erarojn. Ĝi esence ignoras la eraron kaj daŭrigas al la sekva deklaro.
✎ Excel kaptas kaj konservas la rultempajn erarojn en Err objekto. Kiam ni uzas la deklaron On Error Resume Next , ĝi forigas Err-objektajn ecojn.
✎ Vi povas malŝalti la On Error Resume Next deklaro en via VBA-kodo en Excel aldonante la On Error GoTo 0 deklaro.
Konkludo
Por konkludi, mi esperas, ke ĉi tiu lernilo provizis al vi pecon da utila. scio por uzi la On Error Resume Next en Excel VBA. Mi rekomendas vin lerni kaj apliki ĉiujn ĉi tiujn instrukciojn al via datumaro. Elŝutu la praktiklibron kaj provu ĉi tiujn mem. Ankaŭ bonvolu doni komentojn en la komenta sekcio. Viaj valoraj rimarkoj motivas nin krei lernilojn tiajn.
Ne forgesu kontroli nian retejon Exceldemy.com por diversaj problemoj kaj solvoj rilataj al Excel.
Daŭre lernu novajn metodojn kaj daŭre kresku!
kiajn operaciojn ni tuj tuj volas fari. Esence, ni malŝaltas ĉi tiujn erarojn per ĉi tiuj specoj de erartraktado.Ni uzas tri specojn de On Error deklaroj (sintakso) en Excel VBA.
- Je Eraro IriAl linio
- Je Eraro Rekomencu Poste
- Je Eraro IriAl 0
Kiam vi trovas eraron, uzu la komandon Je Eraro. Ĉar se vi ne uzas deklaron de On Error , tiuj rultempaj eraroj estos katastrofaj. Ĝi montros erarpromoniton kaj ĉesos la ekzekuton.
Kiam ni uzas deklaron On Error , ni ŝaltas "ebligitan" erartraktilon. La "aktiva" erartraktilo estas ebligita pritraktilo, kiu komencas la erartraktan operacion. Se eraro okazas dum erartraktanto estas implikita, la erartraktanto de la nuna metodo ne povas elteni la eraron. Post tio, la kontrolo revenas al la alvoka proceduro.
Se la alvoka procezo havas ebligitan erartraktilon, ĝi ekfunkciiĝas por administri la eraron. Se la erartraktilo de via voka sistemo estas responde engaĝita, kontrolo redonas per pli fruaj alvokaj proceduroj ĝis ĝi trovas ebligitan sed neaktivan erartraktilon. Se ĝi ne povas trovi ajnan neaktivan ebligitan erartraktilon, tio signifas, ke la eraro estas katastrofa ĉe sia okazanta punkto.
Ĉiufoje kiam la erartraktilo redonas aŭtoritaton al voka proceduro, tiu procedo evoluigas la ekzistantan proceduron. Ekzekuto rekomencas en lanuna procedo en la momento elektita de la Resume kiam erartraktilo pritraktas erarojn en iu ajn proceduro.
'On Error Resume Next' en VBA
Nun, la On Error Resume Next deklaro diras al VBA ignori iujn ajn liniojn de kodo havantaj erarojn, kaj tuj iru al la sekva linio de kodo. Post tio, la Excel VBA-kodoj preterlasos la linion aŭ liniojn, kiuj enhavas erarojn en ili, kaj transiros al la sekva sekvenco de kodoj.
La deklaro On Error Resume Next devigas efektivigon al rekomencu per la komando tuj sekvante la linion de kodoj, kiuj induktis la rultempan eraron. Ĉi tiu deklaro permesas al ekzekuto salti eĉ se estas rultempa eraro. Se vi pensas, ke aparta kodlinio povas produkti eraron, metu la erartraktan rutinon tie prefere ol meti ĝin en alian lokon ene de la proceduro. La deklaro On Error Resume Next fariĝas neaktiva kiam via kodo vokas alian proceduron. Do, kiam vi bezonas kongruan erartraktadon en tiu rutino, vi devas ruli komandon On Error Resume Next en ĉiu nomita ŝablono.
Estas racie kiam la linio de kodo kiun vi vi bezonas. povas salti ne estas necesa al la flora funkciado de la makroo. Sed memoru, ĝi povas esti malutila se vi uzas ĝin malĝuste ĉar ĝi povas doni neintencitajn rezultojn.
Memoru:
La On. Eraro Resume Sekva deklaro neripari la rultempajn erarojn. Ĝi esence ignoras la erarojn kie via VB-ekzekuto rekomencos de la deklaro kiu generis la rultempan eraron.
Rigardu la sekvan kodon:
5991
Ni provis dividi 5 kun 0 kaj 1. Ni rulu la kodon. Ĝi montros la sekvan eliron:
Ĝi produktas rultempan eraron. Ni ne povas dividi nombron per 0. Kiam vi elpurigas la kodon, vi vidos la jenon:
Kiam la VB-programo trovas eraron, ĝi tuj ĉesigas la proceduron. Ĝi ne efektivigas la sekvan linion.
Nun, ni efektivigu la deklaron On Error Resume Next antaŭ la erara deklaro:
6785
Post rulado de la kodo, vi faros vidu la jenon:
Kiel vi povas vidi, VBA ignoras la linion kiu produktas la eraron kaj tuj daŭrigas al la sekva linio de kodo. Tiamaniere, vi povas uzi la On Error Resume Next por trakti la eraron en Excel VBA.
Ekzemploj de 'On Error Resume Next' en VBA
En la sekvajn sekciojn, mi provizos al vi du ekzemplojn de la On Error Resume Next deklaro, kiun vi povas efektivigi en vian Excel-laborfolion uzante VBA. Mi rekomendas vin lerni kaj apliki ĉion ĉi al via laborlibro. Ĝi certe pliigos vian Excel-scion.
1. 'On Error Resume Next' Deklaro por Kaŝi Laborfoliojn
Nun, en ĉi tiu ekzemplo, mi montros al vi VBA-kodon, kiukaŝos ĉiujn laborfoliojn de via aktiva laborlibro.
Rigardu la sekvan ekrankopion:
Jen, ni havas kvar laborfoliojn. Ni kaŝos ĉiujn per la sekva VBA-kodo:
2786
Kiam vi plenumas la jenan kodon, vi vidos la jenan rultempan eraron:
Excel montras ĉi tiun eraron ĉar vi ne povas kaŝi ĉiujn foliojn en laborlibro. Do, vi devas ignori la eraron. Por fari tion, vi devas efektivigi la deklaron On Error Resume Next en via linio de kodo.
5032
Post plenumi la ekzekuto de la VBA-kodo, vi vidos la sekvan eligon:
Fine, vi ne vidos erarojn post ekzekuto. Do, nia deklaro pri Eraro Resume Venonta funkciis tre bone en la VBA-kodo.
Legu Pli: Eraroj en Excel kaj Ilia Signifo (15 Malsamaj Eraroj)
2. VLOOKUP Funkcio kun 'On Error Resume Next' en VBA
En ĉi tiu ekzemplo, mi montros ekzemplon de la funkcio VLOOKUP en VBA . Nun, ĉi tiu VBA-kodo ankaŭ inkluzivas la deklaron On Error Resume Next .
Rigardu la jenan ekrankopion:
Ĉi tie , vi povas vidi iujn nomojn kaj iliajn aĝojn. En la apuda tabelo, ni uzos la VLOOKUP por trovi la nomon kaj aĝon de la persono.
Tajpu la sekvan kodon por fari tion:
7321
Nun rulu la makroon. . Vi vidos la jenan eraron:
Nun, ĉi tio estas rultempoeraro. Kial ĝi okazas? Rigardu la datumaron denove:
Kiel vi povas vidi, ne ekzistas datumoj por "Aaron" kaj "Emma". Tial ĝi nur efektivigas la VLOOKUP por la unua eniro. Post tio, ĝi ĉesigas la ekzekuton. Nun, se vi volas ignori la eraron kaj daŭrigi por trovi la ceterajn aĝojn, uzu la On Error Resume Next deklaron.
1170
Post rulado de la VBA-kodo, vi vidos la jena eligo:
Kiel vi povas vidi, aplikante la komandon On Error Resume Next , ni ignoris la eraron kaj trovis la ceterajn personojn. aĝoj. Nia VBA-kodo ne trovis ajnajn datumojn de Aaron kaj Emma. Tial ĝi ignoris tiujn valorojn kaj redonis la ceterajn valorojn en la Excel-laborfolio.
Legu Pli: [Fixed] Excel Trovis Problemon kun Unu aŭ Pli da Formulaj Referencoj en Ĉi tiu Laborfolio
Malŝaltu 'On Error Resume Next' kun Excel VBA
Nun, vi eble estas en situacio, kie vi volas ignori erarojn por aparta segmento de la VBA-kodo. Memoru, se vi uzas la deklaron On Error Resume Next en VBA-kodo, ĝi preterlasos ĉiujn erarojn post tio. Nun, se vi volas malŝalti tion kaj ebligi la erartraktadon por alia segmento, uzu On Error GoTo 0 . Ĝi denove ebligos erartraktadon.
Ĝenerala uzado:
Sub error_handling()
Por ignori erarojn
Je eraro rekomenci sekvan
// liniojn de kodoj
Alŝalti Eraro-traktadon
On Error GoTo 0
//linioj de kodoj
End sub
Rigardu la jena VBA-kodo:
4832
Ni uzis la kodon antaŭe por la funkcio VLOOKUP . Ĉi tie aldonis kroman kodon por pruvi vin. Nia kodo ignoros la erarojn dum plenumado de la VLOOKUP sed ĝi aktivigos la erartraktadon post la On Error GoTo 0 deklaro.
Legu Pli: Excel VBA: Malŝaltu la "On Error Resume Next"
VBA 'On Error GoTo'
Antaŭe mi diskutis pritrakti la erarojn per la metodo On Error. Nia tuta artikolo temis pri On Error Resume Next. Nun, estas ankaŭ du specoj de erarotraktado, kiujn mi diskutos en la sekvaj sekcioj.
1. VBA On Error GoTo 0
La On Error Goto 0 deklaro estas la enkonstruita agordo de Excel se viaj kodoj ne havas erartraktilon en ili. Ĝi esence implicas, ke kiam VBA trovas eraron kun On Error GoTo 0 , ĝi ĉesos ruli la kodon kaj montros sian tradician erarmesaĝon.
On Error GoTo 0 > deklaro esence malŝaltas la erartraktadon en la nuna procedo. Ĝi ne difinas linion 0 kiel la komencon de la erartrakta kodo, eĉ se la metodo enhavas linion numeritan 0.
Rigardu la jenan kodon:
4822
Ni havas jam montris al vi ĉi tiun kodon. Ĉi tiu kodo esence kaŝas ĉiujn laborfoliojnen via nuna laborlibro. Nun, mi ja havas kroman kodon kun On Error GoTo 0 por montri la eraron. Se vi rulas la kodon, vi vidos la jenon:
Ĝi montras ĉi tiun eraron ĉar ni ne povas havi foliojn kun la sama nomo en la aktiva laborlibro.
2. VBA On Error GoTo-linio
Nun, vi ankaŭ povas ordoni al Excel ruli alian kodon se ĝi trovas iun eraron per la On Error GoTo-linio . Ĝi diras al Excel ekzekuti ion post trovi eraron.
La linio-argumento estas ajna linio-etikedo aŭ linionumero. Se nia kodo kaŭzas ajnan rultempan eraron, ĝi moviĝos al la linio, kaŭzante la erartraktilon aktivan en la ekzekuto. Memoru, ke via difinita linio devas esti en la ĝusta proceduro kiel la deklaro pri Eraro; alie, ĝi kaŭzos kompilan eraron.
Rigardu la jenan kodon:
7206
Vi vidis la kodon en la antaŭa ekzemplo. Kiam ni uzis On Error GoTo 0 , ĝi kaŭzis eraron. Sed, ĉi tie ni anstataŭigis tion per la On Error GoTo line deklaro.
Nun, rulu la kodon kaj vi vidos la jenon:
Kiel vi povas vidi, ĝi ne montras al ni la norman eraran dialogkeston. Anstataŭe, ĝi montras la kutiman mesaĝkeston, kiun ni kreis en la segmento eraro_traktilo . Kiam Excel trovas iun eraron, ĝi saltas al la segmento error_handler kaj montras al ni la mesaĝkeston.
Ni ankaŭ uzis Eliro Sub en la proceduro.Se ne ekzistas folio nomita " VLOOKUP ", nia VBA-kodo renomos la aktivan folion. Tiam ni devas fini la ekzekuton ĉi tie ĉar ni ne bezonas daŭrigi al la erartraktilo kaj montri la mesaĝkeston.
VBA 'On Eraro' Ne Funkcias en Excel
Kelkfoje, kiom ajn vi provas, la metodo On Error ne funkcios. Antaŭe, ni efektivigis la metodon On Error por trakti la erarojn. Sed, foje ĝi montros erarojn eĉ se vi uzas On Error Resume Next aŭ On Error GoTo 0 . Povas esti pluraj kialoj en via kodo, kiujn vi devas ripari. Mi ne montros tion al vi.
La baza kialo por VBA ' Je Eraro' Ne Funkcias en Excel estas ŝalti la opcion "Rompi ĉiujn Erarojn" en Excel.
Sekvu ĉi tiujn paŝojn por solvi tion:
📌 Paŝoj
- Unue, premu Alt+F11 sur via klavaro por malfermu la VBA-redaktilon.
- Nun alklaku Iloj > Opcioj.
- Post tio, alklaku la langeton Ĝenerala en la Opcioj dialogo. skatolo.
- Jen, vi povas vidi, " Rompi ĉe Ĉiuj Eraroj " jam estas markita. Ĝi esence malhelpas vin pritrakti la erarojn.
- Por ŝanĝi ĝin, elektu la opcion " Rompi ĉe netraktitaj eraroj " kaj alklaku OK .
Mi esperas, ke ĝi solvos vian problemon pri VBA "Je Eraro" ne funkcianta en Excel.
Legu Pli: Kialoj kaj Korekcioj