Excelలో అనుకూల ఫంక్షన్లను ఎలా డీబగ్ చేయాలో తెలుసుకోండి

  • దీన్ని భాగస్వామ్యం చేయండి
Michael Brown

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

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

మేము క్రింది డీబగ్గింగ్ పద్ధతులను అన్వేషిస్తాము:

    మీరు అనుకూల ఫంక్షన్‌ని సృష్టించినప్పుడు, ఎల్లప్పుడూ అవకాశం ఉంటుంది మీరు తప్పు చేస్తారని. కస్టమ్ ఫంక్షన్లు సాధారణంగా చాలా క్లిష్టంగా ఉంటాయి. మరియు వారు ఎల్లప్పుడూ సరిగ్గా పని చేయడం ప్రారంభించరు. ఫార్ములా తప్పు ఫలితాన్ని అందించవచ్చు లేదా #VALUE! లోపం. ప్రామాణిక Excel ఫంక్షన్‌ల వలె కాకుండా, మీరు ఏ ఇతర సందేశాలను చూడలేరు.

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

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

    ఉదాహరణగా, మేము అనుకూల ఫంక్షన్‌ని ఉపయోగిస్తాము. GetMaxBetween పేర్కొన్న విలువల పరిధిలో గరిష్ట సంఖ్యను గణించే మా మునుపటి కథనాలలో ఒకదాని నుండి:

    ఫంక్షన్ GetMaxBetween(rngCells పరిధి, MinNum, MaxNum) మసక సంఖ్య పరిధిని మసకగా vMax మసకబారిన arrNums() మసకగా i rngCellsలోని ప్రతి సంఖ్య పరిధికి పూర్ణాంకం ReDim arrNums(rngCells.Count) vMax =NumRange ఎంచుకోండి కేస్ vMax Case MinNum + 0.01 నుండి MaxNum - 0.01 arrNums(i) = vMax i = i + 1 Case else GetMaxBetween = 0 ముగింపు తదుపరి NumRange ఎంచుకోండి GetMaxBetween = WorksheetFunction.Max(ardNum) ఆర్గ్యుమెంట్‌లు <0) సంఖ్యలు వ్రాయబడిన సెల్‌ల పరిధి, అలాగే విలువల ఎగువ మరియు దిగువ పరిమితి.

    MsgBox ఫంక్షన్‌ను ముఖ్యమైన ప్రదేశాలలో ఉంచండి

    గణనల అమలును పర్యవేక్షించడానికి, మీరు ప్రదర్శించవచ్చు. సరైన ప్రదేశాలలో స్క్రీన్‌పై అత్యంత ముఖ్యమైన వేరియబుల్స్ విలువలు. ఇది పాప్-అప్ డైలాగ్ బాక్స్‌లను ఉపయోగించి చేయవచ్చు.

    MsgBox అనేది వినియోగదారుకు ఒక రకమైన సందేశాన్ని చూపించడానికి మీరు ఉపయోగించే డైలాగ్ బాక్స్.

    MsgBox యొక్క సింటాక్స్ ఇతర VBA ఫంక్షన్‌ల మాదిరిగానే ఉంటుంది:

    MsgBox(ప్రాంప్ట్ [, బటన్‌లు] [, శీర్షిక] [, హెల్ప్‌ఫైల్, సందర్భం])

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

    అన్ని ఇతర ఆర్గ్యుమెంట్‌లు ఐచ్ఛికం.

    [ బటన్‌లు ] - ఏ బటన్‌లు మరియు చిహ్నాలు ఉన్నాయో నిర్ణయిస్తుంది MsgBox లో ప్రదర్శించబడుతుంది. ఉదాహరణకు, మేము vbOkOnly ఎంపికను ఉపయోగిస్తే, అప్పుడు OK బటన్ మాత్రమే ప్రదర్శించబడుతుంది. మీరు ఈ వాదనను కోల్పోయినప్పటికీ, ఈ బటన్ డిఫాల్ట్‌గా ఉపయోగించబడుతుంది.

    [ శీర్షిక ] - ఇక్కడ మీరు సందేశ పెట్టె యొక్క శీర్షికను పేర్కొనవచ్చు.

    మనం దీని నుండి మారండి సాధన మరియు డీబగ్గింగ్ ప్రారంభించడానికి పదాలు. ప్రదర్శించడానికిసందేశం, Case Else ఆపరేటర్:

    MsgBox vMax, "కౌంట్ -" & i

    ఫలితంలో మనం పొందబోయేది ఇక్కడ ఉంది:

    ఫంక్షన్ GetMaxBetween(rngCells Range, MinNum, MaxNum) డిమ్ నంబర్ రేంజ్ డిమ్ vMax డిమ్ arrNums() డిమ్ i Integer ReDim arrNums(rngCells.Count) rngCellsలోని ప్రతి NumRange కోసం vMax = NumRange కేస్ vMax కేస్ MinNum + 0.01 నుండి MaxNum - 0.01 arrNums(i) = vMax i = i + 1 MsgBox vMax, "కౌంట్ -" & i Case Else GetMaxBetween = 0 ముగింపు తదుపరి నంబర్‌రేంజ్ ఎంచుకోండి GetMaxBetween = WorksheetFunction.Max(arrNums) ముగింపు ఫంక్షన్

    డైలాగ్ బాక్స్‌లో vMax వేరియబుల్ ఉపయోగించి, ఎంపిక కోసం ఏ సంఖ్యలు ప్రమాణాలకు అనుగుణంగా ఉంటాయో మనం చూస్తాము, కాబట్టి వాటిలో పెద్దదాన్ని మనం ఎంచుకోవచ్చు. వ్యక్తీకరణతో "కౌంట్ -" & నేను టైటిల్ బార్‌లో, గరిష్ట విలువను నిర్ణయించడానికి మేము ఇప్పటికే ఎన్ని సంఖ్యలను ఎంచుకున్నామో సూచిస్తాము. ప్రతి కొత్త విలువతో కౌంటర్ పెరుగుతుంది.

    మన UDF సెట్ చేసిన తర్వాత, మేము దిగువ ఫార్ములాను తేదీ పరిధికి వర్తింపజేస్తాము:

    = GetMaxBetween (A1:A6,10,50)

    Enter బటన్ తర్వాత నొక్కినప్పుడు, దిగువ స్క్రీన్‌షాట్‌లో ఉన్నట్లుగా మీరు సందేశాన్ని చూస్తారు:

    ఇది A1: A6 పరిధిలో ప్రమాణాలకు అనుగుణంగా ఉండే మొదటి సంఖ్య: 10 కంటే ఎక్కువ కానీ తక్కువ 50 కంటే.

    మీరు సరే క్లిక్ చేసిన తర్వాత, 14వ సంఖ్యతో రెండవ సందేశం కనిపిస్తుంది. మిగిలిన సంఖ్యలు ఎంపికతో సరిపోలడం లేదుప్రమాణాలు. అందువల్ల, ఫంక్షన్ నిష్క్రమిస్తుంది మరియు రెండు విలువలలో అతిపెద్దది 17ని అందిస్తుంది.

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

    నిలుపుదల పాయింట్‌లను నిర్ణయించండి మరియు దశలవారీగా చేయండి

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

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

    మీరు దిగువ స్క్రీన్‌షాట్‌లో చూడగలిగే విధంగా ఎరుపు వృత్తం కనిపిస్తుంది. గణన నిలిపివేయబడే కోడ్ లైన్ ఎరుపు రంగులో హైలైట్ చేయబడింది.

    ఇప్పుడు, ఫంక్షన్ రన్ అవుతున్నప్పుడు VBA ఎడిటర్ విండో తెరవబడుతుంది. మీరు ఆపివేసిన ప్రదేశంలో కర్సర్ ఉంచబడుతుంది.

    మీరు ఫంక్షన్ కోడ్‌లోని ఏదైనా వేరియబుల్స్‌పై మీ మౌస్ కర్సర్‌ని ఉంచినట్లయితే, మీరు వాటి ప్రస్తుతాన్ని చూడవచ్చువిలువ:

    గణనను కొనసాగించడానికి F5ని నొక్కండి.

    గమనిక. బ్రేక్ పాయింట్ తర్వాత, మీరు దశల వారీగా గణనల పురోగతిని ట్రాక్ చేయడం ప్రారంభించవచ్చు. మీరు F8 బటన్‌ను నొక్కితే, VBA కోడ్ యొక్క ఒక తదుపరి లైన్ మాత్రమే అమలు చేయబడుతుంది. బాణంతో పసుపు గీత కూడా చివరిగా అమలు చేయబడిన కోడ్ స్థానానికి తరలించబడుతుంది.

    ఫంక్షన్ అమలు మళ్లీ పాజ్ చేయబడినందున, మీరు మౌస్ కర్సర్‌ని ఉపయోగించి ఫంక్షన్ యొక్క అన్ని వేరియబుల్స్ యొక్క ప్రస్తుత విలువలను వీక్షించవచ్చు.

    F8 యొక్క తదుపరి ప్రెస్ మమ్మల్ని ఒక అడుగు ముందుకు తీసుకెళుతుంది. . కాబట్టి మీరు గణన ముగిసే వరకు F8 నొక్కవచ్చు. లేదా తదుపరి బ్రేక్‌పాయింట్ వరకు గణనను కొనసాగించడానికి F5 నొక్కండి.

    లోపం సంభవించినట్లయితే, లోపం సంభవించిన కోడ్‌లో కర్సర్ ఆపివేయబడుతుంది. మరియు మీరు పాప్-అప్ దోష సందేశాన్ని కూడా చూస్తారు. ఇది సమస్య యొక్క కారణాన్ని గుర్తించడం సులభం చేస్తుంది.

    మీరు ఫైల్‌ను మూసివేసే వరకు మీరు పేర్కొన్న బ్రేక్‌పాయింట్‌లు వర్తింపజేయబడతాయి. మీరు దాన్ని మళ్లీ తెరిచినప్పుడు, మీరు వాటిని మళ్లీ సెట్ చేయాలి. అత్యంత అనుకూలమైన పద్ధతి కాదు, మీరు అనుకుంటున్నారా?

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

    VBA Stop స్టేట్‌మెంట్‌ను ఎదుర్కొన్నప్పుడు, అది ప్రోగ్రామ్ అమలును ఆపివేస్తుంది మరియు మీ చర్య కోసం వేచి ఉంటుంది. వేరియబుల్స్ విలువలను తనిఖీ చేయండికొనసాగించడానికి F5ని నొక్కండి.

    లేదా పైన వివరించిన విధంగా దశలవారీగా ఫంక్షన్‌ని పూర్తి చేయడానికి F8ని నొక్కండి.

    Stop స్టేట్‌మెంట్ ప్రోగ్రామ్‌లో భాగం మరియు అందుచేత బ్రేక్‌పాయింట్‌లో వలె తొలగించబడలేదు. మీరు డీబగ్గింగ్ పూర్తి చేసినప్పుడు, దాన్ని మీరే తీసివేయండి. లేదా ఒకే కోట్ (')తో ముందుగా పేర్కొనడం ద్వారా దాన్ని వ్యాఖ్యగా మార్చండి.

    డీబగ్.ప్రింట్ ఆపరేటర్‌ని ఉపయోగించి డీబగ్ చేయడం

    మీరు డీబగ్.ప్రింట్ ని ఉంచవచ్చు. సరైన స్థలంలో ఫంక్షన్ కోడ్. చక్రీయంగా మారుతున్న వేరియబుల్స్ విలువలను తనిఖీ చేయడానికి ఇది ఉపయోగపడుతుంది.

    మీరు డీబగ్ యొక్క ఉదాహరణను చూడవచ్చు.ప్రింట్ పనితీరును దిగువ స్క్రీన్‌షాట్‌లో చూడవచ్చు.

    స్టేట్‌మెంట్ డీబగ్.ప్రింట్ i, vMax విలువలు మరియు వాటి ఆర్డినల్ నంబర్‌లను ముద్రిస్తుంది.

    తక్షణ విండోలో మీరు ఎంచుకున్న పరిధి నుండి రెండు సంఖ్యలను (17 మరియు 14) చూస్తారు, ఇది పరిమితులను సెట్ చేయండి మరియు వాటిలో గరిష్టంగా ఎంపిక చేయబడుతుంది. అంకెలు 1 మరియు 2 అంటే ఫంక్షన్ 2 సైకిల్‌లను పూర్తి చేసిందని, అందులో సంఖ్యలు ఎంపిక చేయబడ్డాయి. మేము ఇంతకు ముందు MsgBox తో చేసినట్లుగా, అత్యంత ముఖ్యమైన వేరియబుల్స్ యొక్క విలువలను చూస్తాము. కానీ ఇది ఫంక్షన్‌ను ఆపలేదు.

    ప్రొసీజర్ నుండి ఫంక్షన్‌కు కాల్ చేయండి

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

    మీరు వినియోగదారు నిర్వచించిన ఫంక్షన్‌ని GetMaxBerween నుండి ఎలా కాల్ చేయవచ్చో ఇక్కడ ఉందివిధానం:

    ఉప పరీక్ష() Dim x x = GetMaxBetween(Range ("A1:A6"), 10, 50) MsgBox(x) End Sub

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

    లోపం సంభవించినట్లయితే, మీరు VBA ఎడిటర్‌లో సంబంధిత సందేశాన్ని చూస్తారు. గణన నిలిపివేయబడుతుంది మరియు లోపం సంభవించిన కోడ్ లైన్ పసుపు రంగులో హైలైట్ చేయబడుతుంది. లోపం ఎక్కడ మరియు ఎందుకు సంభవించిందో మీరు సులభంగా గుర్తించవచ్చు.

    అంతే. ఇప్పుడు మీరు మీ స్వంత యాడ్-ఇన్‌ని సృష్టించారు, దానిని Excelకు జోడించారు మరియు మీరు దానిలో UDFని ఉపయోగించవచ్చు. మీరు మరిన్ని UDFలను ఉపయోగించాలనుకుంటే, VBA ఎడిటర్‌లోని యాడ్-ఇన్ మాడ్యూల్‌లో కోడ్‌ని వ్రాసి దాన్ని సేవ్ చేయండి.

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

    మైఖేల్ బ్రౌన్ సాఫ్ట్‌వేర్ సాధనాలను ఉపయోగించి సంక్లిష్ట ప్రక్రియలను సరళీకృతం చేయాలనే అభిరుచితో అంకితమైన సాంకేతిక ఔత్సాహికుడు. టెక్ పరిశ్రమలో దశాబ్దానికి పైగా అనుభవంతో, అతను మైక్రోసాఫ్ట్ ఎక్సెల్ మరియు ఔట్‌లుక్‌తో పాటు గూగుల్ షీట్‌లు మరియు డాక్స్‌లో తన నైపుణ్యాలను మెరుగుపరుచుకున్నాడు. మైఖేల్ యొక్క బ్లాగ్ అతని జ్ఞానాన్ని మరియు నైపుణ్యాన్ని ఇతరులతో పంచుకోవడానికి అంకితం చేయబడింది, ఉత్పాదకత మరియు సామర్థ్యాన్ని మెరుగుపరచడం కోసం సులభంగా అనుసరించగల చిట్కాలు మరియు ట్యుటోరియల్‌లను అందిస్తుంది. మీరు అనుభవజ్ఞుడైన ప్రొఫెషనల్ లేదా అనుభవశూన్యుడు అయినా, మైఖేల్ యొక్క బ్లాగ్ ఈ ముఖ్యమైన సాఫ్ట్‌వేర్ సాధనాలను ఎక్కువగా పొందడానికి విలువైన అంతర్దృష్టులను మరియు ఆచరణాత్మక సలహాలను అందిస్తుంది.