VBA లాంగ్ (ఉదాహరణ) | ఎక్సెల్ VBA లో లాంగ్ డేటా రకానికి స్టెప్ బై స్టెప్
VBA లో లాంగ్ డేటా రకం అంటే ఏమిటి?
లాంగ్ అనేది VBA లో డేటా రకం ఇది సంఖ్యా విలువలను నిల్వ చేయడానికి ఉపయోగించబడుతుంది, పూర్ణాంకం కూడా సంఖ్యా విలువలను కలిగి ఉందని మాకు తెలుసు, కాని లాంగ్ పూర్ణాంకాల నుండి భిన్నంగా ఉంటుంది, ఎందుకంటే డేటా నిల్వ చేసే పరిధి చాలా పెద్దది. చాలా, ఇది అంతర్నిర్మిత డేటా రకం.
“లాంగ్” పేరు చెప్పినట్లుగా, అది పెద్దదాని విలువను కలిగి ఉండాలి. “లాంగ్” అనేది VBA ఎక్సెల్ లోని సంఖ్యా డేటా రకం.
ఎక్సెల్ VBA లోని పొడవైన డేటా రకం సానుకూల సంఖ్యల కోసం 0 నుండి 2, 147, 483, 647 వరకు విలువలను కలిగి ఉంటుంది మరియు ప్రతికూల సంఖ్యకు 0 నుండి -2, 147, 483, 648 వరకు ఉంటుంది.
VBA లాంగ్ డేటా రకానికి మీ కంప్యూటర్ యొక్క 4 బైట్ల మెమరీ నిల్వ అవసరం, ఇది రెట్టింపు పూర్ణ సంఖ్య డేటా రకం వేరియబుల్ మెమరీ (2 బైట్లు) మరియు సగం రెట్టింపు డేటా రకం వేరియబుల్ మెమరీ (8 బైట్లు)
నా చిన్న కెరీర్లో VBA లాంగ్ డేటా రకం యొక్క పరిమితిని పూర్తిగా ఉపయోగించుకోవాలనుకునే దృష్టాంతాన్ని నేను ఎప్పుడూ చూడలేదు. కానీ దాన్ని బాగా అర్థం చేసుకోవడానికి కొన్ని ఉదాహరణలు మీకు చూపిస్తాను.
VBA లాంగ్ డేటా రకానికి ఉదాహరణలు
ఎక్సెల్ VBA లాంగ్ డేటా రకానికి ఉదాహరణలు క్రింద ఉన్నాయి.
మీరు ఈ VBA లాంగ్ డేటా టైప్ ఎక్సెల్ మూసను ఇక్కడ డౌన్లోడ్ చేసుకోవచ్చు - VBA లాంగ్ డేటా టైప్ ఎక్సెల్ మూస
VBA దీర్ఘ ఉదాహరణ # 1
మీరు వేరియబుల్ డేటా రకాన్ని “లాంగ్” గా ప్రకటించిన వెంటనే, మీరు -2, 147, 483, 648 నుండి 2, 147, 483, 648 నుండి విలువలను కేటాయించవచ్చు.
ఉదాహరణకు, వేరియబుల్ను లాంగ్ డేటా రకంగా ప్రకటించండి.
కోడ్:
సబ్ లాంగ్_ఎక్సాంపుల్ 1 () డిమ్ కె యాస్ లాంగ్ ఎండ్ సబ్
వర్క్షీట్ యొక్క మొత్తం వరుస గణనగా విలువను కేటాయించండి.
ఎక్సెల్ వర్క్షీట్ కోడ్లో మొత్తం కౌంట్ అడ్డు వరుసలను పొందడం “వరుసలు. కౌంట్ ”
కోడ్:
ఉప లాంగ్_ఎక్సాంపుల్ 1 () మసకబారినంత పొడవుగా k = వరుసలు.కౌంట్ ముగింపు ఉప
ఇప్పుడు సందేశ పెట్టెలో విలువను చూపించు.
కోడ్:
ఉప లాంగ్_ఎక్సాంపుల్ 1 () మసకబారినంత పొడవుగా k = వరుసలు.కౌంట్ MsgBox k ఎండ్ సబ్
ఈ కోడ్ను అమలు చేసి, వర్క్షీట్లో మొత్తం వరుసల సంఖ్య ఏమిటో చూడండి.
వర్క్షీట్లో మనకు 1 మిలియన్ కంటే ఎక్కువ వరుసలు ఉన్నాయని ఇది తెలిపింది.
ఇప్పుడు మంచి అవగాహన కోసం, నేను డేటా రకాన్ని లాంగ్ నుండి INTEGER కి మారుస్తాను.
కోడ్:
సబ్ లాంగ్_ఎక్సాంపుల్ 1 () డిమ్ కె యాస్ ఇంటీజర్ k = రోస్.కౌంట్ MsgBox k ఎండ్ సబ్
నేను VBA కోడ్ను అమలు చేస్తే దోష సందేశాన్ని “ఓవర్ఫ్లో” గా పొందుతాను.
VBA లో మనకు ఈ లోపం రావడానికి కారణం డేటా రకం “ఇంటీజర్” -31768 నుండి 32767 వరకు విలువలను మాత్రమే కలిగి ఉంటుంది. ఈ సందర్భంలో “వరుసలు. కౌంట్ ”“ పూర్ణాంక ”వేరియబుల్ యొక్క పరిమితి కంటే ఎక్కువ సంఖ్యను తిరిగి ఇస్తుంది.
1 మిలియన్ కంటే ఎక్కువ విలువను 32767 మాత్రమే కలిగి ఉన్న వేరియబుల్కు కేటాయించడం ఇక్కడ ఓవర్ఫ్లో లోపానికి కారణమవుతుంది.
VBA దీర్ఘ ఉదాహరణ # 2
లాంగ్ వేరియబుల్ ఉపయోగించి చివరి వరుసను కనుగొనండి
వర్క్షీట్ యొక్క చివరిగా ఉపయోగించిన అడ్డు వరుసను కనుగొనడం కోడింగ్లో చాలా ముఖ్యమైనది. వర్క్షీట్ యొక్క చివరిగా ఉపయోగించిన అడ్డు వరుసను కనుగొనటానికి వేరియబుల్ డిక్లేర్ అవసరం. వేరియబుల్ ప్రకటించేటప్పుడు మరియు డేటా రకాన్ని కేటాయించేటప్పుడు కొంత ఇంగితజ్ఞానం అవసరం.
దిగువ చిత్రంలో చూపిన విధంగా మీకు 25000 వరుసల వద్ద డేటా చివరలు ఉన్నాయని అనుకోండి.
చివరిగా ఉపయోగించిన వరుస సంఖ్య 25000 అని ఇప్పుడు నాకు తెలుసు, దీని కోసం, మాకు “లాంగ్” డేటా రకం అవసరం లేదు, ఎందుకంటే “INTEGER” డేటా రకం నాకు చివరి వరుసను ఇవ్వగలదు.
మీ సమాచారం కోసం క్రింది కోడ్ చూడండి.
కోడ్:
సబ్ లాంగ్_ఎక్సాంపుల్ 1 () డిమ్ కె యాస్ ఇంటీజర్ k = సెల్స్ (అడ్డు వరుసలు.
నేను ఈ కోడ్ను అమలు చేస్తే, నేను ప్రస్తుతం పనిచేస్తున్న వర్క్షీట్ యొక్క చివరిగా ఉపయోగించిన వరుస సంఖ్యను పొందుతాను.
కోడర్గా, భవిష్యత్తులో మీరు కలిగి ఉన్న డేటా పరిమాణాన్ని తెలుసుకోవడం చాలా ముఖ్యం. ఎందుకంటే ప్రస్తుతానికి డేటా 25000 వ వరుసలో ముగుస్తుంది, కాని డేటా “ఇంటీజర్” పరిమితికి మించి పెరిగితే, అంటే 32767, అది ఓవర్ఫ్లో లోపానికి కారణమవుతుంది.
ఉదాహరణకు, నేను డేటాను 32768 వ వరుసలకు పెంచుతాను.
ఇప్పుడు నేను మళ్ళీ అదే కోడ్ను నడుపుతుంటే నాకు విలువ రాదు బదులుగా ఈ క్రింది విధంగా లోపం వస్తుంది.
“ఇంటీజర్” విలువ యొక్క పరిమితికి మించి నేను పరిమితిని కేవలం 1 పెంచాను, కాబట్టి నాకు ఓవర్ఫ్లో లోపం వచ్చింది.
కాబట్టి మీరు వేరియబుల్కు డేటా రకాన్ని కేటాయించే ముందు మీ డేటా పరిమాణాన్ని తెలుసుకోవడం చాలా ముఖ్యం. భవిష్యత్తులో మీ డేటా పరిమాణం గురించి ఆలోచించకుండా వేరియబుల్ను “లాంగ్” గా ప్రకటించడం ఎల్లప్పుడూ మంచి ఎంపిక.
ఎక్సెల్ VBA లాంగ్ వేరియబుల్కు ప్రత్యామ్నాయాలు
పొడవైన వేరియబుల్ యొక్క పరిమితి కంటే ఎక్కువ విలువను కలిగి ఉండాలనుకుంటే మీరు ఇప్పటికే ఏమి ఆలోచిస్తూ ఉండాలి. దీని కోసం, మేము వేర్వేరు డేటా రకాలను ఉపయోగించాలి, అనగా VBA “స్ట్రింగ్” లేదా “వేరియంట్”
ఇది 2147483647 సంఖ్యను దాటిన క్షణం గుర్తుంచుకోండి, లాంగ్ డేటా రకంతో VBA లో ఓవర్ఫ్లో లోపం వస్తుంది. ఈ సంఖ్య కంటే ఎక్కువ నిల్వ చేయడానికి మనం “స్ట్రింగ్” లేదా “వేరియంట్” డేటా రకాన్ని ఉపయోగించాలి.
స్ట్రింగ్ కోసం
కోడ్:
ఉప లాంగ్_ఎక్సాంపుల్ 2 () మసకబారిన స్ట్రింగ్ k = 2147483648 MsgBox k ఎండ్ సబ్
వేరియంట్ కోసం
కోడ్:
సబ్ లాంగ్_ఎక్సాంపుల్ 2 () డిమ్ కె యాస్ వేరియంట్ k = 2147483648 MsgBox k ఎండ్ సబ్
మేము పై కోడ్లను అమలు చేసినప్పుడు, అది పేర్కొన్న సంఖ్యను చూపుతుంది.