4 VBA తో Excel Macros ప్రోగ్రామింగ్ చేసేటప్పుడు నివారించాల్సిన తప్పులు

4 VBA తో Excel Macros ప్రోగ్రామింగ్ చేసేటప్పుడు నివారించాల్సిన తప్పులు

మైక్రోసాఫ్ట్ ఎక్సెల్ ఇది ఇప్పటికే సమర్థవంతమైన డేటా విశ్లేషణ సాధనం, కానీ విజువల్ బేసిక్ ఫర్ అప్లికేషన్స్ (VBA) లో సింపుల్ కోడ్‌ను వ్రాయడం ద్వారా మాక్రోలతో పునరావృతమయ్యే పనులను ఆటోమేట్ చేయగల సామర్థ్యంతో ఇది మరింత శక్తివంతమైనది. తప్పుగా ఉపయోగించినప్పటికీ, VBA సమస్యలను కలిగిస్తుంది.





మీరు ప్రోగ్రామర్ కాకపోయినా, మీ స్ప్రెడ్‌షీట్‌లకు ఆకట్టుకునే కార్యాచరణను జోడించడానికి అనుమతించే సరళమైన ఫంక్షన్‌లను VBA అందిస్తుంది.





మీరు ఎక్సెల్‌లో డాష్‌బోర్డ్‌లను సృష్టించే VBA గురువు లేదా ప్రాథమిక సెల్ గణనలను చేసే సాధారణ స్క్రిప్ట్‌లను వ్రాసే కొత్త వ్యక్తి అయినా ఫర్వాలేదు. క్లీన్, బగ్-ఫ్రీ కోడ్ ఎలా రాయాలో తెలుసుకోవడానికి ఈ సాధారణ ప్రోగ్రామింగ్ టెక్నిక్‌లను అనుసరించండి.





VBA తో ప్రారంభించడం

VBA మీ కోసం అన్ని రకాల చక్కని పనులను చేయగలదు. షీట్లను సవరించే స్థూలాలను వ్రాయడం నుండి VBA స్క్రిప్ట్‌లను ఉపయోగించి ఎక్సెల్ స్ప్రెడ్‌షీట్ నుండి ఇమెయిల్‌లను పంపుతోంది మీ ఉత్పాదకతపై చాలా తక్కువ పరిమితులు ఉన్నాయి.

మీరు ఎక్సెల్‌లో VBA లో ప్రోగ్రామ్ చేయకపోతే, మీరు మీ Excel ప్రోగ్రామ్‌లో డెవలపర్ సాధనాలను ఎనేబుల్ చేయాలి. శుభవార్త ఏమిటంటే, డెవలపర్ సాధనాలను ప్రారంభించడం చాలా సులభం. కేవలం వెళ్ళండి ఫైల్ > ఎంపికలు ఆపై రిబ్బన్‌ను అనుకూలీకరించండి . కేవలం తరలించండి డెవలపర్ ట్యాబ్ ఎడమ పేన్ నుండి కుడి వైపున.



చెక్ బాక్స్ ఈ ట్యాబ్ ప్రారంభించబడిందని నిర్ధారించుకోండి మరియు ఇప్పుడు మీ ఎక్సెల్ మెనూలో డెవలపర్ ట్యాబ్ కనిపిస్తుంది.

ఇక్కడ క్లిక్ చేయడం ద్వారా కోడ్ ఎడిటర్ విండోలోకి ప్రవేశించడానికి సులభమైన మార్గం కోడ్ చూడండి కింద బటన్ నియంత్రణలు డెవలపర్ మెనూలో.





మీరు ఇప్పుడు VBA కోడ్ రాయడానికి సిద్ధంగా ఉన్నారు! ఈ ట్యాబ్‌లో మీరు VBA ని యాక్సెస్ చేయవచ్చు ఎక్సెల్‌లో మ్యాక్రోలను రికార్డ్ చేయడం . ఇప్పుడు ఎక్సెల్ పని చేయడానికి సిద్ధంగా ఉంది కాబట్టి నివారించడానికి కొన్ని సాధారణ తప్పులు మరియు వాటిని నివారించే మార్గాలను తెలుసుకుందాం.

1. భయంకరమైన వేరియబుల్ పేర్లు

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





అన్ని విధాలుగా ఆన్ చేయని ఫోన్ను ఎలా పరిష్కరించాలి

నా దశాబ్దాల కోడ్ రచనలో, వేరియబుల్ నేమింగ్ కన్వెన్షన్‌ల విషయానికి వస్తే నేను చాలా ఆలోచనా విధానాలను చూశాను మరియు కొన్ని నియమాలను కఠినంగా నేర్చుకున్నాను. వేరియబుల్ పేర్లను సృష్టించడానికి ఇక్కడ కొన్ని వేగవంతమైన చిట్కాలు ఉన్నాయి:

  • వాటిని వీలైనంత చిన్నదిగా చేయండి.
  • వాటిని సాధ్యమైనంతవరకు వివరణాత్మకంగా చేయండి.
  • వేరియబుల్ రకం (బూలియన్, పూర్ణాంకం, మొదలైనవి) తో వాటిని ముందుగానే చెప్పండి.

PC సమాచారాన్ని సేకరించడానికి Excel నుండి WMIC Windows కాల్స్ చేయడానికి నేను తరచుగా ఉపయోగించే ప్రోగ్రామ్ నుండి నమూనా స్క్రీన్ షాట్ ఇక్కడ ఉంది.

మీరు మాడ్యూల్ లేదా ఆబ్జెక్ట్ లోపల ఒక ఫంక్షన్ లోపల వేరియబుల్స్ ఉపయోగించాలనుకున్నప్పుడు (నేను దీనిని క్రింద వివరిస్తాను), అప్పుడు మీరు డిక్లరేషన్‌ను ముందుగా పేర్కొనడం ద్వారా దీనిని 'పబ్లిక్' వేరియబుల్‌గా ప్రకటించాలి. ప్రజా . లేకపోతే, వేరియబుల్స్ అనే పదంతో వాటిని ముందుగా పేర్కొనడం ద్వారా డిక్లేర్ చేయబడతాయి ఏదీ లేదు .

మీరు చూడగలిగినట్లుగా, వేరియబుల్ పూర్ణాంకం అయితే అది ముందుగానే చెప్పబడింది int . ఇది స్ట్రింగ్ అయితే, అప్పుడు p . మీరు ప్రోగ్రామింగ్ చేస్తున్నప్పుడు ఇది తర్వాత సహాయపడే వ్యక్తిగత ప్రాధాన్యత, ఎందుకంటే పేరును చూడటం ద్వారా వేరియబుల్ ఏ రకమైన డేటాను కలిగి ఉందో మీకు ఎల్లప్పుడూ తెలుస్తుంది.

అలాగే, మీ ఎక్సెల్ వర్క్‌బుక్‌లో షీట్‌లకు పేరు పెట్టాలని నిర్ధారించుకోండి.

ఈ విధంగా, మీరు మీ ఎక్సెల్ VBA కోడ్‌లోని షీట్ పేరును సూచించినప్పుడు, మీరు అర్ధవంతమైన పేరును సూచిస్తున్నారు. పై ఉదాహరణలో, నేను నెట్‌వర్క్ సమాచారాన్ని లాగడానికి ఒక షీట్ ఉంది, కాబట్టి నేను షీట్‌ను 'నెట్‌వర్క్' అని పిలుస్తాను. నేను ఎప్పుడైనా నెట్‌వర్క్ షీట్‌ను ప్రస్తావించాలనుకుంటే, అది ఏ షీట్ నంబర్ అని చూడకుండా నేను త్వరగా చేయగలను.

2. లూపింగ్‌కు బదులుగా బ్రేకింగ్

కొత్త VBA ప్రోగ్రామర్లు కోడ్ రాయడం మొదలుపెట్టినప్పుడు సర్వసాధారణంగా ఉండే సమస్యల్లో ఒకటి లూప్‌లతో సరిగ్గా వ్యవహరించడం.

ఎక్సెల్‌లో లూపింగ్ చాలా సాధారణం ఎందుకంటే తరచుగా మీరు డేటా వాల్యూలను మొత్తం అడ్డు వరుస లేదా కాలమ్‌ని ప్రాసెస్ చేస్తున్నారు, కాబట్టి అవన్నీ ప్రాసెస్ చేయడానికి మీరు లూప్ చేయాలి.

క్రొత్త ప్రోగ్రామర్లు తరచుగా ఒక లూప్ నుండి బయటపడాలని కోరుకుంటారు (VBA ఫర్ లూప్స్ లేదా VBA డూ విప్ లూప్‌లు) ఒక నిర్దిష్ట షరతు నిజం అయినప్పుడు.

VBA లూప్‌ను విచ్ఛిన్నం చేయడానికి ఈ పద్ధతి ఉపయోగించబడుతున్న ఉదాహరణ ఇక్కడ ఉంది.

For x = 1 To 20
If x = 6 Then Exit For
y = x + intRoomTemp
Next i

కొత్త ప్రోగ్రామర్లు ఈ విధానాన్ని తీసుకుంటారు ఎందుకంటే ఇది సులభం. స్పష్టంగా ఒక లూప్‌ను బ్రేకింగ్ చేయకుండా ప్రయత్నించండి మరియు నివారించండి.

చాలా తరచుగా, ఆ 'విరామం' తర్వాత వచ్చే కోడ్ ప్రాసెస్ చేయడానికి ముఖ్యం. మీరు ఒక లూప్‌ను సగం దూరంలో వదిలేయాలనుకునే పరిస్థితులను నిర్వహించడానికి చాలా క్లీనర్ మరియు మరింత ప్రొఫెషనల్ మార్గం ఆ నిష్క్రమణ పరిస్థితిని VBA ఉండగా స్టేట్‌మెంట్ వంటి వాటిలో చేర్చడం.

While (x>=1 AND x<=20 AND x6)
For x = 1 To 20
y = x + intRoomTemp
Next i
Wend

ఇది మీ కోడ్ యొక్క తార్కిక ప్రవాహాన్ని అనుమతిస్తుంది. ఇప్పుడు కోడ్ లూప్ అవుతుంది మరియు అది 6 కి చేరుకున్న తర్వాత ఆగిపోతుంది. ఇబ్బందికరమైన EXIT లేదా BREAK ఆదేశాలను మిడ్-లూప్‌లో చేర్చాల్సిన అవసరం లేదు.

3. శ్రేణులను ఉపయోగించడం లేదు

కొత్త VBA ప్రోగ్రామర్లు చేసే మరో ఆసక్తికరమైన తప్పు ఏమిటంటే, గణన ప్రక్రియలో వరుసలు మరియు నిలువు వరుసల ద్వారా ఫిల్టర్ చేసే అనేక సమూహ లూప్‌ల లోపల ప్రతిదీ ప్రాసెస్ చేయడానికి ప్రయత్నిస్తుంది.

ఇది పెద్ద పనితీరు సమస్యలకు కూడా దారితీయవచ్చు. ఒక కాలమ్ ద్వారా లూప్ చేయడం మరియు ప్రతిసారీ విలువలను ఎక్స్‌ట్రాక్ట్ చేయడం మీ ప్రాసెసర్‌పై కిల్లర్. సంఖ్యల సుదీర్ఘ జాబితాలను నిర్వహించడానికి మరింత సమర్థవంతమైన మార్గం శ్రేణిని ఉపయోగించడం.

మీరు ఇంతకు ముందు శ్రేణిని ఉపయోగించకపోతే, భయపడవద్దు. మీరు సమాచారాన్ని ఉంచగల నిర్దిష్ట సంఖ్యలో 'క్యూబ్స్' ఉన్న ఐస్ క్యూబ్ ట్రేగా శ్రేణిని ఊహించండి. క్యూబ్‌లు 1 నుండి 12 వరకు నంబర్ చేయబడ్డాయి మరియు మీరు వాటిని డేటాను 'ఎలా' పెడతారు.

మీరు టైప్ చేయడం ద్వారా శ్రేణిని సులభంగా నిర్వచించవచ్చు Dim arrMyArray (12) పూర్ణాంకం .

జూమ్‌లో మీరు మీ చేతిని ఎలా పైకెత్తుతారు

ఇది మీరు పూరించడానికి అందుబాటులో ఉన్న 12 స్లాట్‌లతో 'ట్రే'ని సృష్టిస్తుంది.

శ్రేణి లేకుండా వరుస లూపింగ్ కోడ్ ఎలా ఉంటుందో ఇక్కడ ఉంది:

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
If Range('A' & str(x)).value <100 then
intTemp = (Range('A' & str(x)).value) * 32 - 100
End If
ActiveCell.Offset(1, 0).Select
Next
End Sub

ఈ ఉదాహరణలో, కోడ్ పరిధిలోని ప్రతి ఒక్క సెల్ ద్వారా డౌన్ ప్రాసెస్ చేయబడుతుంది మరియు ఉష్ణోగ్రత గణనను నిర్వహిస్తోంది.

ఇదే విలువలపై మీరు ఎప్పుడైనా మరికొన్ని గణనలను చేయాలనుకుంటే ప్రక్రియ గజిబిజిగా ఉంటుంది. మీరు ఈ కోడ్‌ని డూప్లికేట్ చేయాలి, ఈ సెల్‌లన్నింటినీ డౌన్ ప్రాసెస్ చేయాలి మరియు మీ కొత్త గణనను నిర్వహించాలి. అన్నీ ఒకే మార్పు కోసం!

శ్రేణిని ఉపయోగించి ఇక్కడ ఒక ఉత్తమ ఉదాహరణ ఉంది. ముందుగా, శ్రేణిని సృష్టిద్దాం.

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
arrMyArray(x-1) = Range('A' & str(x)).value)
ActiveCell.Offset(1, 0).Select
Next
End Sub

ది x-1 శ్రేణి మూలకాన్ని సూచించడానికి మాత్రమే అవసరం ఎందుకంటే ఫర్ లూప్ 1 వద్ద మొదలవుతుంది. అర్రే మూలకాలు 0 వద్ద ప్రారంభం కావాలి.

ఇప్పుడు మీరు శ్రేణిని కలిగి ఉన్నారు, కంటెంట్‌లను ప్రాసెస్ చేయడం చాలా సులభం.

Sub TempCalc()
For x = 0 To UBound(arrMyArray)
arrMyTemps(y) = arrMyArray(x) * 32 - 100
Next
End Sub

ఈ ఉదాహరణ మొత్తం వరుస శ్రేణి గుండా వెళుతుంది ( UBound శ్రేణిలోని డేటా విలువల సంఖ్యను మీకు అందిస్తుంది), ఉష్ణోగ్రత గణనను చేసి, ఆపై దానిని మరొక శ్రేణిలో ఉంచుతారు arrMyTemps .

4. చాలా సూచనలు ఉపయోగించడం

మీరు పూర్తి స్థాయి విజువల్ బేసిక్ లేదా VBA లో ప్రోగ్రామింగ్ చేస్తున్నా, కొన్ని ఫీచర్‌లను యాక్సెస్ చేయడానికి మీరు 'రిఫరెన్స్‌లు' చేర్చాలి.

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

ఈ విండోలో మీరు కనుగొనేది మీ ప్రస్తుత VBA ప్రాజెక్ట్ కోసం ప్రస్తుతం ఎంపిక చేసిన అన్ని సూచనలు.

అనవసరమైన సూచనలు సిస్టమ్ వనరులను వృధా చేయగలవు కాబట్టి మీరు ఈ జాబితాను తనిఖీ చేయాలి. మీరు ఏదైనా XML ఫైల్ మానిప్యులేషన్ ఉపయోగించకపోతే, మైక్రోసాఫ్ట్ XML ని ఎందుకు ఎంపిక చేసుకోవాలి? మీరు డేటాబేస్‌తో కమ్యూనికేట్ చేయకపోతే, మైక్రోసాఫ్ట్ DAO మొదలైనవి తీసివేయండి.

ఈ ఎంచుకున్న సూచనలు ఏమి చేస్తాయో మీకు తెలియకపోతే, నొక్కండి F2 మరియు మీరు ఆబ్జెక్ట్ ఎక్స్‌ప్లోరర్‌ను చూస్తారు. ఈ విండో ఎగువన, మీరు బ్రౌజ్ చేయడానికి రిఫరెన్స్ లైబ్రరీని ఎంచుకోవచ్చు.

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

ఉదాహరణకు, నేను DAO లైబ్రరీపై క్లిక్ చేసినప్పుడు ఇది డేటాబేస్‌లకు కనెక్ట్ చేయడం మరియు కమ్యూనికేట్ చేయడం గురించి మాత్రమే అని స్పష్టమవుతుంది.

మీ ప్రోగ్రామింగ్ ప్రాజెక్ట్‌లో మీరు ఉపయోగించే రిఫరెన్స్‌ల సంఖ్యను తగ్గించడం మంచిది, మరియు మీ మొత్తం అప్లికేషన్ మరింత సమర్ధవంతంగా అమలు చేయడానికి సహాయపడుతుంది.

నన్ను ప్లే స్టోర్‌కు తీసుకురండి

ఎక్సెల్ VBA లో ప్రోగ్రామింగ్

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

అయినా అక్కడ ఆగవద్దు. ఎక్సెల్ నైపుణ్యాల యొక్క బలమైన పునాదిని a తో నిర్మించండి ప్రారంభకులకు VBA ట్యుటోరియల్ . మీ స్ప్రెడ్‌షీట్‌లను ఆటోమేట్ చేయడంలో మీకు సహాయపడటానికి వనరులతో VBA మరియు మాక్రోల గురించి నేర్చుకుంటూ ఉండండి.

షేర్ చేయండి షేర్ చేయండి ట్వీట్ ఇమెయిల్ ఇది విండోస్ 11 కి అప్‌గ్రేడ్ చేయడం విలువైనదేనా?

Windows పునesరూపకల్పన చేయబడింది. విండోస్ 10 నుండి విండోస్ 11 కి మారడానికి మిమ్మల్ని ఒప్పించడానికి ఇది సరిపోతుందా?

తదుపరి చదవండి
సంబంధిత అంశాలు
  • ఉత్పాదకత
  • ప్రోగ్రామింగ్
  • ప్రోగ్రామింగ్
  • విజువల్ బేసిక్ ప్రోగ్రామింగ్
  • మైక్రోసాఫ్ట్ ఎక్సెల్
రచయిత గురుంచి ఆంథోనీ గ్రాంట్(40 కథనాలు ప్రచురించబడ్డాయి)

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

ఆంథోనీ గ్రాంట్ నుండి మరిన్ని

మా వార్తాలేఖకు సభ్యత్వాన్ని పొందండి

టెక్ చిట్కాలు, సమీక్షలు, ఉచిత ఈబుక్‌లు మరియు ప్రత్యేకమైన డీల్స్ కోసం మా వార్తాలేఖలో చేరండి!

సభ్యత్వం పొందడానికి ఇక్కడ క్లిక్ చేయండి