VBA లోపం నిర్వహణ | ఎక్సెల్ VBA లో లోపం నిర్వహణకు మార్గదర్శి
ఎక్సెల్ VBA లోపం నిర్వహణ
VBA లో మేము కోడ్లతో పనిచేసేటప్పుడు అనేక రకాలైన లోపాలను ఎదుర్కోవచ్చు మరియు ఈ లోపాలను ఎలా పరిష్కరించుకోవాలో లోపం నిర్వహణ అని పిలుస్తారు, ఇప్పుడు వాక్యనిర్మాణంలో కొన్ని లోపాలు ఉండవచ్చు, ఇది ఎక్సెల్ దానిని హైలైట్ చేస్తుంది కాని కొంత లోపం ఉన్నప్పుడు ఇది పరిధిలో లేదు లేదా ఎక్సెల్ లేనిది మనకు పాప్ అప్ ఇస్తుంది, కోడ్లోని లోపాన్ని గుర్తించడానికి ఏ లోపం కోసం ఏ లోపం కోడ్ ఉందో తెలుసుకోవడం ముఖ్యం.
ఎక్సెల్ VBA లో ఏదైనా సంకేతాలను అమలు చేస్తున్నప్పుడు మనకు కొంత లోపాలు వస్తాయి. ఈ లోపాలు కొన్ని సింటాక్స్ లోపాలు, కొన్ని లోపాలు ఏవీ అమలు చేయలేనివి. వాక్యనిర్మాణం లోపం ఎక్సెల్ ద్వారా ఎరుపు రంగులో హైలైట్ చేయబడినప్పుడు సింటాక్స్ లోపం. ఏ ఇతర రన్ టైమ్ లోపం ఉన్నప్పుడు మేము దానిని ఎలా నిర్వహించగలం మరియు దీన్ని మించి ఎలా పొందాలో ఈ వ్యాసంలో మనం కవర్ చేస్తాము.
వాక్యనిర్మాణ లోపాలు కాకుండా, ఏదైనా సంకేతాలను అమలు చేసేటప్పుడు ఇతర రన్ టైమ్ లోపాలను నిర్వహించాల్సిన అవసరం ఉంది. మొదట, ఇతర రన్టైమ్ లోపం ఎలా సంభవిస్తుందో ఒక ఉదాహరణ ఇస్తాను. దిగువ కోడ్ను చూడండి,
ఇది అమలు చేయబడినప్పుడు ఇది ఒక నమూనా కోడ్, msgbox ఫంక్షన్లో వ్రాసిన వాటిని తిరిగి ఇస్తుంది. కానీ కోడ్ యొక్క రెండవ వరుసలో 4/0 ఉందని గణిత పరంగా సాధ్యం కాదు కాబట్టి ఇది రన్ టైమ్ లోపాన్ని తిరిగి ఇస్తుంది. పై కోడ్ను ఎగ్జిక్యూట్ చేద్దాం మరియు మనకు లభించే లోపాన్ని చూద్దాం.
ఇచ్చిన కోడ్ను అమలు చేస్తున్నప్పుడు మనకు లభించే లోపం ఇది. ఇప్పుడు మేము ఈ లోపాన్ని ఎలా నిర్వహించాలో లోపం నిర్వహణ ద్వారా జరుగుతుంది.
లోపాలను నిర్వహించడానికి రెండు పద్ధతులు ఉన్నాయి:
- లోపం గోటో, మరియు
- లోపం పున ume ప్రారంభం తరువాత.
వివరణ
పైన వివరించిన విధంగా మనకు VBA లో అనేక రకాల లోపాలు వస్తాయి, కొన్ని వాక్యనిర్మాణం మరియు కొన్ని రన్ టైమ్. సింటాక్స్ లోపాలు ఇప్పటికే ఎరుపు రంగులో హైలైట్ చేయబడ్డాయి, ఉదాహరణకు, స్క్రీన్ షాట్ క్రింద చూడండి,
మరొకటి రన్ టైమ్ లోపాలు. సాధారణంగా, ఎక్సెల్ ఈ క్రింది మూడు పనులను చేస్తుంది, అది లోపం చూపిస్తుంది లేదా ఆ లోపాన్ని విస్మరిస్తుంది లేదా ఇది ఒక నిర్దిష్ట సూచనలను చూపుతుంది. అటువంటి పనులు చేయడానికి మేము సూచనలు ఇవ్వాలి మరియు దీనిని ఎర్రర్ హ్యాండ్లింగ్ అంటారు.
VBA కోడ్లో లోపాలను ఎలా నిర్వహించాలి?
మీరు ఈ VBA లోపం నిర్వహణ ఎక్సెల్ మూసను ఇక్కడ డౌన్లోడ్ చేసుకోవచ్చు - VBA లోపం నిర్వహణ ఎక్సెల్ మూసను నిర్వహించడంఉదాహరణ # 1
మొదటి ఉదాహరణ కోసం మేము తీసుకున్న మొదటి కోడ్ను ప్రదర్శనగా తీసుకుందాం. పై ఉదాహరణలో, కోడ్ రెండవ msgbox ఫంక్షన్ వద్ద రన్ టైమ్ లోపాన్ని ఇస్తుందని మేము చూశాము.
సబ్ఫంక్షన్ తెరిచిన తర్వాత కింది కోడ్ను వ్రాయండి,
కోడ్:
ఉప నమూనా () లోపం పున ume ప్రారంభం తరువాత MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 ముగింపు ఉప
ఇప్పుడు మనం పై కోడ్ను ఎగ్జిక్యూట్ చేసినప్పుడు లోపం ఉన్న కోడ్ యొక్క లైన్ అమలు కాలేదని చూస్తాము. ఎక్సెల్ ఆ పంక్తిని దాటవేసి తదుపరి పంక్తిలో తిరిగి ప్రారంభమవుతుంది.
లోపాన్ని నిర్వహించడానికి మరొక పద్ధతి ఉంది vba గోటో స్టేట్మెంట్, లోపం కనిపించినప్పుడు వెళ్ళడానికి మేము ఎక్సెల్ గమ్యాన్ని అందిస్తాము. మునుపటి లోపం నిర్వహణ కోడ్కు బదులుగా, మేము ఈ క్రింది కోడ్ను వ్రాసాము,
కోడ్:
ఉప నమూనా () లోపం GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 ముగింపు ఉప
ఎక్సెల్ అజ్ లోపం దొరికితే వెళ్ళడానికి గమ్యస్థానంగా ఇస్తున్నాము. ఇప్పుడు msgbox తరువాత మరొక కోడ్ను క్రింద వ్రాయండి,
కోడ్:
ఉప నమూనా () లోపం GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 పూర్తయింది: ఉప నిష్క్రమించండి
ఎక్సెల్ కోడ్లో లోపం కనిపించినప్పుడు అది ఏమి చేయాలో ఇప్పుడు మనం గమ్యం అజ్ను నిర్వచించాలి.
కోడ్:
ఉప నమూనా () లోపం GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 పూర్తయింది: ఉప az నుండి నిష్క్రమించు: MsgBox "ఇది లోపం" & Err.Description End Sub
ఇప్పుడు మనం ఈ కోడ్ను రన్ చేసినప్పుడు ఫలితం ప్రదర్శించబడుతుంది.
ఇది మొదటి msg బాక్స్ ఫలితం మరియు మన కోడ్ యొక్క తరువాతి పంక్తిలో లోపం ఉందని మాకు తెలుసు కాబట్టి, ఎక్సెల్ ఏమి ఇస్తుందో ఫలితాన్ని చూద్దాం.
కోడ్లోని పై లోపం.డిస్క్రిప్షన్ మా కోడ్లో లోపం ఏమిటో ఖచ్చితంగా చూపించడానికి సహాయపడుతుంది.
ఉదాహరణ # 2
మా కోడ్లలో లోపాలను ఎలా నిర్వహించాలో నేర్చుకున్నాము. లోపాలను ఎలా నిర్వహించాలో మరొక ఉదాహరణ చూద్దాం. కింది కోడ్ను మా రెండవ ఉదాహరణగా పరిగణించండి.
ఉదాహరణ 1 నుండి మనకు కొంతవరకు సమానమైన లోపం ఉంది. లోపం d = i / b పంక్తిలో ఉంది. ఇప్పుడు మనం పైన వివరించిన రెండు పద్ధతులను ఉపయోగించి ఈ లోపాలను నిర్వహిస్తాము.
సబ్ఫంక్షన్ తెరిచిన తర్వాత కింది కోడ్ను వ్రాయండి,
కోడ్:
ఉప నమూనా 2 () లోపం పున ume ప్రారంభం తరువాత బిఎక్స్ డిమ్ ఐ పూర్ణాంకంగా, బి పూర్ణాంకంగా, సి పూర్ణాంకంగా, d పూర్ణాంకంగా i = 2 బి = 0 సి = ఐ + బి ఎంఎస్బిబాక్స్ సి డి = ఐ / బి ఎంఎస్జిబాక్స్ డి ఎండ్ సబ్
ఇప్పుడు మన కోడ్ను ఎగ్జిక్యూట్ చేసినప్పుడు అది రెండవ పంక్తిని విస్మరించి, సి కోసం విలువను ప్రదర్శిస్తుంది.
పైన పేర్కొన్న లోపం హ్యాండ్లర్ తదుపరి పున ume ప్రారంభం, ఇప్పుడు మనం వెళ్ళండి, అందులో లోపం ఎదురైనప్పుడు వెళ్ళడానికి గమ్యాన్ని ఎక్సెల్ అని చెబుతాము. కింది కోడ్ రాయండి,
కోడ్:
ఉప నమూనా 2 () లోపంపై GoTo bx డిమ్ i పూర్ణాంకం, b పూర్ణాంకం, c పూర్ణాంకం, d పూర్ణాంకం i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d
Bx అనేది msgbox D కింది కోడ్ను వ్రాసిన తర్వాత లోపం ఎదురైనప్పుడు ఇచ్చిన గమ్యం.
కోడ్:
ఉప నమూనా 2 () లోపంపై GoTo bx డిమ్ i పూర్ణాంకంగా, b పూర్ణాంకంగా, c పూర్ణాంకంగా, d పూర్ణాంకంగా i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d DOne: నిష్క్రమించు
ఇప్పుడు మనం గమ్యం Bx ను నిర్వచించవలసి ఉంది, అది లోపం ఎదురైనప్పుడు ఏమి చేయాలి, కాబట్టి ఈ క్రింది కోడ్ను రాయండి,
కోడ్:
ఉప నమూనా 2 () లోపంపై GoTo bx డిమ్ i పూర్ణాంకంగా, b పూర్ణాంకంగా, c పూర్ణాంకంగా, d పూర్ణాంకంగా i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: నిష్క్రమించు ఉప bx: MsgBox "ఇది మరొక లోపం" & Err.Description End Sub
ఇప్పుడు మనం కోడ్ను ఎగ్జిక్యూట్ చేసినప్పుడు ఎక్సెల్ మొదట సి కోసం విలువను ఇస్తుంది.
ఇప్పుడు మరొక దశలో, అది లోపం ఎదురైనప్పుడు మేము అందించిన ప్రాంప్ట్ను ఇస్తుంది.
ఎక్సెల్ VBA లో సాధారణ రన్టైమ్ లోపాలను మేము ఈ విధంగా నిర్వహిస్తాము.
గుర్తుంచుకోవలసిన విషయాలు
లోపం నిర్వహణ గురించి మనం గుర్తుంచుకోవలసిన కొన్ని విషయాలు ఉన్నాయి:
- లోపం పున ume ప్రారంభం తరువాత లోపం విస్మరిస్తుంది.
- లోపం GoTo ఒక గమ్యాన్ని లోపం ఎదుర్కొన్నప్పుడు ఇస్తుంది.
- వినియోగదారుకు ఖచ్చితమైన లోపం సంభవించినట్లు చూపించడానికి వివరణ ఉపయోగించబడుతుంది.