VBA ఆబ్జెక్ట్ అవసరం | ఎక్సెల్ VBA లో ఆబ్జెక్ట్ అవసరమైన లోపాన్ని ఎలా పరిష్కరించాలి?

ఎక్సెల్ VBA లో ఆబ్జెక్ట్ అవసరం

పొరపాట్లు కోడింగ్ భాష యొక్క భాగం మరియు భాగం కాని నిజమైన మేధావి లోపాన్ని కనుగొని, ఆ లోపాలను పరిష్కరించడంలో ఉంది. ఆ లోపాలను పరిష్కరించడంలో మొదటి దశ ఆ లోపాలు ఎందుకు సంభవిస్తున్నాయో తెలుసుకునే తెలివితేటలు. ఆ లోపాలు ఎందుకు వస్తున్నాయో మీరు కనుగొనగలిగితే, చెమటను విడదీయకుండా ఆ లోపాలను పరిష్కరించడం చాలా సులభమైన పని. VBA కోడింగ్‌లో అలాంటి లోపం “ఆబ్జెక్ట్ అవసరం”.

వేరియబుల్స్ నేర్చుకునేటప్పుడు మరియు ఆ వేరియబుల్స్కు డేటా రకాలను కేటాయించేటప్పుడు మీకు గుర్తుంటే మనకు “ఆబ్జెక్ట్” డేటా రకాలు కూడా ఉన్నాయి. ఆబ్జెక్ట్ డేటా రకం కేటాయించినప్పుడు మరియు మేము సూచించే వర్క్‌షీట్ లేదా వర్క్‌బుక్‌లో ఆ వస్తువు లేకపోతే, అప్పుడు మేము VBA దోష సందేశాన్ని పొందుతాము “ఆబ్జెక్ట్ అవసరం”. కాబట్టి, క్రొత్త కోడర్‌గా, ఆ పరిస్థితులలో భయపడటం సాధారణం, ఎందుకంటే ప్రారంభ స్థాయిలో అనుభవశూన్యుడు ఈ లోపానికి కారణాన్ని కనుగొనలేకపోయాడు.

ఆబ్జెక్ట్ ఎందుకు అవసరం లోపం? (మరియు… దాన్ని ఎలా పరిష్కరించాలి?)

సరే, ఈ లోపం ఎందుకు సంభవించిందో మరియు దాన్ని ఎలా పరిష్కరించాలో నిజంగా అర్థం చేసుకోవడానికి రెండు లేదా మూడు ఉదాహరణలు పడుతుంది.

మీరు ఈ VBA ఆబ్జెక్ట్ అవసరమైన ఎక్సెల్ మూసను ఇక్కడ డౌన్‌లోడ్ చేసుకోవచ్చు - VBA ఆబ్జెక్ట్ అవసరం ఎక్సెల్ మూస

ఉదాహరణకు ఈ క్రింది కోడ్‌ను చూడండి.

కోడ్:

 సబ్ లాస్ట్_రో () డిమ్ డబ్ల్యుబి వర్క్‌షీట్‌గా డిమ్ డబ్ల్యుఎస్ వర్క్‌షీట్‌గా డిమ్ మైటోడే తేదీ సెట్‌గా డబ్ల్యుబి = ఈ వర్క్‌బుక్ సెట్ డబ్ల్యుఎస్ = ఈ వర్క్‌బుక్.వర్క్‌షీట్లు ("డేటా") సెట్ మైటోడే = డబ్ల్యుబి.డబ్ల్యు. 

మీ కోసం పై కోడ్‌ను మీకు వివరిస్తాను.

నేను మూడు వేరియబుల్స్ ప్రకటించాను మరియు మొదటి రెండు వేరియబుల్స్ “వర్క్‌బుక్” మరియు “వర్క్‌షీట్” వస్తువులను సూచిస్తాయి. మూడవ వేరియబుల్ “తేదీ” డేటా రకాన్ని సూచిస్తుంది.

“ఆబ్జెక్ట్” డేటా రకాలను వేరియబుల్‌కు కేటాయించినప్పుడు, ఆబ్జెక్ట్ యొక్క రిఫరెన్స్‌ను వేరియబుల్‌కు కేటాయించడానికి “సెట్” కీని ఉపయోగించాలి, కాబట్టి తరువాతి రెండు పంక్తులలో “సెట్” కీవర్డ్‌ని ఉపయోగించడం ద్వారా నేను కేటాయించిన “ఈ వర్క్‌బుక్” యొక్క వేరియబుల్ “డబ్ల్యుబి” కి సూచన ఎందుకంటే ఈ వేరియబుల్ ఆబ్జెక్ట్ డేటా రకాన్ని “వర్క్‌బుక్” గా కలిగి ఉంది మరియు వేరియబుల్ “డబ్ల్యుఎస్” కోసం నేను ఈ వర్క్‌బుక్‌లో “డేటా” వర్క్‌షీట్ యొక్క వర్క్‌షీట్ ఆబ్జెక్ట్‌ను కేటాయించాను.

 Wb = ThisWorkbook ని సెట్ చేయండి
 Ws = ThisWorkbook.Worksheets ("డేటా") సెట్ చేయండి
  • “తేదీ” డేటా రకం వేరియబుల్ కోసం తరువాతి పంక్తిలో, ఈ వర్క్‌బుక్ (డబ్ల్యుబి) మరియు వర్క్‌షీట్ “డేటా” (డబ్ల్యుఎస్) లోని సెల్ ఎ 1 విలువ యొక్క విలువను కేటాయించడానికి నేను “సెట్” కీవర్డ్‌ని ఉపయోగించాను.
 MyToday = Wb.Ws.Cells (1, 1) సెట్ చేయండి
  • తరువాతి పంక్తిలో, మేము VBA లోని సందేశ పెట్టెలో సెల్ A1 విలువ యొక్క “MyDate” వేరియబుల్ విలువ యొక్క విలువను చూపుతున్నాము.
MsgBox MyToday
  • సరే, ఈ కోడ్‌ను రన్ చేద్దాం మరియు దాని ఫలితంగా మనకు ఏమి లభిస్తుందో చూద్దాం.

మీరు పైన చూడగలిగినట్లుగా ఇది VBA దోష సందేశాన్ని చూపిస్తుంది “ఆబ్జెక్ట్ అవసరం”. సరే, మనకు ఈ దోష సందేశం ఎందుకు వస్తున్నదో పరిశీలించడానికి సమయం ఆసన్నమైంది.

  • దోష సందేశాన్ని చూపించేటప్పుడు కోడ్ విభాగంలో పై లోపం సందేశ చిత్రంలో ఇది నీలం రంగుతో కోడ్ యొక్క లోపం భాగాన్ని హైలైట్ చేసింది.

  • కాబట్టి, మనకు ఈ లోపం ఎందుకు వచ్చిందనేది ప్రశ్న. మనం చూడవలసిన మొదటి విషయం ఈ ప్రత్యేకమైన వేరియబుల్ డేటా రకం. డేటా రకాన్ని వేరియబుల్ “మైడేట్” కు కేటాయించిన మునుపటి కోడ్ యొక్క తిరిగి వెళ్ళు.

  • మేము వేరియబుల్ డేటా రకాన్ని “తేదీ” గా కేటాయించాము మరియు ఇప్పుడు ఇప్పుడు లోపం రేఖకు తిరిగి వచ్చాము.

ఈ పంక్తిలో, మేము “సెట్” అనే కీవర్డ్‌ని ఉపయోగించాము, అయితే మా డేటా రకం “ఆబ్జెక్ట్” డేటా రకం కాదు. కాబట్టి VBA కోడ్ “సెట్” అనే కీవర్డ్‌ని చూసిన క్షణం అది ఆబ్జెక్ట్ డేటా రకం అని and హిస్తుంది మరియు దీనికి ఆబ్జెక్ట్ రిఫరెన్స్ అవసరమని చెప్పింది.

కాబట్టి, బాటమ్ లైన్ “సెట్” కీవర్డ్ వర్క్‌షీట్, వర్క్‌బుక్ మొదలైన ఆబ్జెక్ట్ వేరియబుల్స్‌ను సూచించడానికి మాత్రమే ఉపయోగించబడుతుంది…

ఉదాహరణ # 1

ఇప్పుడు ఈ క్రింది కోడ్‌ను చూడండి.

కోడ్:

 ఉప ఆబ్జెక్ట్_అవసరమైన_ లోపం () పరిధి ("A101"). విలువ = అప్లికేషన్ 1.వర్క్‌షీట్ఫంక్షన్.సమ్ (పరిధి ("A1: A100")) ముగింపు ఉప 

పై కోడ్‌లో, A1 నుండి A100 వరకు సెల్ విలువలను పొందడానికి వర్క్‌షీట్ ఫంక్షన్ “SUM” ను ఉపయోగించాము. మీరు ఈ కోడ్‌ను అమలు చేస్తున్నప్పుడు మేము క్రింద లోపం ఎదుర్కొంటాము.

అయ్యో !! ఇది “రన్-టైమ్ లోపం‘ 424 ’: ఆబ్జెక్ట్ అవసరం.

ఇప్పుడు కోడ్‌ను దగ్గరగా చూద్దాం.

“అప్లికేషన్” ను ఉపయోగించటానికి బదులుగా మేము “అప్లికేషన్ 1” ను తప్పుగా ఉపయోగించాము, కాబట్టి ఇది VBA కోడ్‌లో “ఆబ్జెక్ట్ అవసరం” యొక్క లోపాన్ని ఎదుర్కొంది.

“ఆప్షన్ ఎక్స్‌ప్లిసిట్” అనే పదం ప్రారంభించబడితే మనకు “వేరియబుల్ నాట్ డిఫైన్డ్” లోపం వస్తుంది.

గుర్తుంచుకోవలసిన విషయాలు

  • ఆబ్జెక్ట్ అవసరం అంటే ఆబ్జెక్ట్ డేటా రకం రిఫరెన్స్ ఖచ్చితంగా ఉండాలి.
  • కోడింగ్‌లో ఆప్షన్ స్పష్టమైన పదం ప్రారంభించబడనప్పుడు, అక్షరదోషంతో కూడిన వేరియబుల్ పదాలకు ఆబ్జెక్ట్ అవసరమైన లోపం లభిస్తుంది మరియు ఆప్షన్ ఎక్స్‌ప్లిసిట్ ప్రారంభించబడితే, అక్షరదోషంలో వేరియబుల్ పదాల కోసం వేరియబుల్ నిర్వచించబడని లోపం వస్తుంది.