VBAలో ​​వేరియబుల్స్ మరియు స్థిరాంకాలు

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

ఉదాహరణకు, స్థిరమైన Pi 3,14159265 విలువను నిల్వ చేస్తుంది... ప్రోగ్రామ్ యొక్క అమలు సమయంలో "Pi" సంఖ్య మారదు, అయితే అటువంటి విలువను స్థిరంగా నిల్వ చేయడం ఇప్పటికీ మరింత సౌకర్యవంతంగా ఉంటుంది.

అదే సమయంలో, మేము వేరియబుల్ ఉపయోగించవచ్చు sVAT_రేట్ కొనుగోలు చేసిన వస్తువులపై VAT రేటును నిల్వ చేయడానికి. వేరియబుల్ విలువ sVAT_రేట్ కొనుగోలు చేసిన ఉత్పత్తిని బట్టి మారవచ్చు.

డేటా రకాలు

అన్ని వేరియబుల్స్ మరియు స్థిరాంకాలు నిర్దిష్ట డేటా రకానికి చెందినవి. దిగువ పట్టిక VBAలో ​​ఉపయోగించిన డేటా రకాలను వివరణ మరియు సాధ్యమైన విలువల పరిధితో జాబితా చేస్తుంది:

సమాచార తరహా పరిమాణం<span style="font-family: Mandali; "> టెండర్‌ వివరణ</span>విలువల పరిధి
బైట్1 బైట్లుసానుకూల పూర్ణాంకాలు; తరచుగా బైనరీ డేటా కోసం ఉపయోగిస్తారు0 నుండి 255 వరకు
బూలియన్2 బైట్లునిజం లేదా తప్పు కావచ్చునిజమా లేక అబధ్ధమా
పూర్ణ సంఖ్య2 బైట్లుపూర్ణ సంఖ్యలు (పాక్షిక భాగం లేదు)-32 నుండి +768 వరకు
లాంగ్4 బైట్లుపెద్ద పూర్ణాంకాలు (పాక్షిక భాగం లేదు)от -2 147 483 648 до +2 147 483 647
ఒకే4 బైట్లుఒకే ఖచ్చితమైన ఫ్లోటింగ్ పాయింట్ సంఖ్య-3.4e38 నుండి +3.4e38 వరకు
డబుల్8 బైట్లుడబుల్ ఖచ్చితత్వం ఫ్లోటింగ్ పాయింట్ సంఖ్య-1.8e308 నుండి +1.8e308 వరకు
కరెన్సీ8 బైట్లుదశాంశ స్థానాల స్థిర సంఖ్యతో ఫ్లోటింగ్ పాయింట్ సంఖ్యот -922 337 203 685 477.5808 до +922 337 203 685 477.5807
తేదీ8 బైట్లుతేదీ మరియు సమయం - తేదీ రకం డేటా ఫ్లోటింగ్ పాయింట్ సంఖ్య ద్వారా సూచించబడుతుంది. ఈ సంఖ్య యొక్క పూర్ణాంకం భాగం తేదీని వ్యక్తపరుస్తుంది మరియు పాక్షిక భాగం సమయాన్ని వ్యక్తపరుస్తుంది.జనవరి 1, 100 నుండి డిసెంబర్ 31, 9999 వరకు
ఆబ్జెక్ట్4 బైట్లువస్తువు సూచనఏదైనా వస్తువు సూచన
స్ట్రింగ్మారుతోందిపాత్ర సెట్. స్ట్రింగ్ రకం స్థిరమైన లేదా వేరియబుల్ పొడవుగా ఉండవచ్చు. వేరియబుల్ పొడవుతో మరింత సాధారణంగా ఉపయోగించబడుతుందిస్థిర పొడవు - సుమారు 65 అక్షరాల వరకు. వేరియబుల్ పొడవు - సుమారు 500 బిలియన్ అక్షరాల వరకు
వేరియంట్మారుతోందితేదీ, ఫ్లోట్ లేదా అక్షర స్ట్రింగ్ ఉండవచ్చు. ఏ రకమైన డేటా నమోదు చేయబడుతుందో ముందుగానే తెలియని సందర్భాల్లో ఈ రకం ఉపయోగించబడుతుంది.సంఖ్య - డబుల్, స్ట్రింగ్ - స్ట్రింగ్

సహజంగానే, పై పట్టికను ఉపయోగించడం మరియు సరైన డేటా రకాన్ని ఎంచుకోవడం, మీరు మెమరీని మరింత ఆర్థికంగా ఉపయోగించవచ్చు (ఉదాహరణకు, డేటా రకాన్ని ఎంచుకోండి పూర్ణ సంఖ్య బదులుగా లాంగ్ or ఒకే బదులుగా డబుల్) అయినప్పటికీ, మరింత కాంపాక్ట్ డేటా రకాలను ఉపయోగిస్తున్నప్పుడు, మీ కోడ్ వాటికి అసమానంగా పెద్ద విలువలను అమర్చడానికి ప్రయత్నించకుండా జాగ్రత్త వహించాలి.

వేరియబుల్స్ మరియు స్థిరాంకాలను ప్రకటించడం

అనువాదకుని గమనిక: VBAలో ​​వేరియబుల్స్ గురించి మాట్లాడుతూ, మరొక ముఖ్యమైన అంశాన్ని ప్రస్తావించడం విలువ. మనం వేరియబుల్‌ని డిక్లేర్ చేసి, దానికి ఎటువంటి విలువను కేటాయించకపోతే, అది డిఫాల్ట్ విలువతో ప్రారంభించబడుతుంది:

• టెక్స్ట్ స్ట్రింగ్‌లు ఖాళీ స్ట్రింగ్‌లతో ప్రారంభించబడతాయి;

• సంఖ్యలు — విలువ 0;

• రకం వేరియబుల్స్ బూలియన్ - తప్పు;

• తేదీలు – డిసెంబర్ 30, 1899.

వేరియబుల్ లేదా స్థిరాంకం ఉపయోగించే ముందు, దానిని తప్పనిసరిగా ప్రకటించాలి. దీన్ని చేయడానికి, మాక్రోకు క్రింది సాధారణ కోడ్ లైన్ జోడించండి:

Dim Имя_Переменной As Тип_Данных

పై కోడ్ లైన్‌లో వేరియబుల్_పేరు కోడ్‌లో ఉపయోగించబడే వేరియబుల్ పేరు, మరియు సమాచార తరహా ఈ కథనంలో కొంచెం ముందుగా ఇవ్వబడిన పట్టికలోని డేటా రకాల్లో ఒకటి. ఉదాహరణకి:

డిమ్ sVAT_రేట్ సింగిల్ డిమ్‌గా నేను పూర్ణాంకం వలె

స్థిరాంకాలు అదేవిధంగా ప్రకటించబడతాయి, కానీ స్థిరాంకాలను ప్రకటించేటప్పుడు, వాటి విలువ వెంటనే సూచించబడాలి. ఉదాహరణకు, ఇలా:

కాన్స్ట్ iMaxCount = 5000 కాన్స్ట్ iMaxScore = 100

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

అందువల్ల, ప్రోగ్రామర్ కొత్త వేరియబుల్‌ను ఎప్పుడైనా ఉపయోగించవచ్చు (ఇది ప్రకటించబడకపోయినా), మరియు Excel దానిని టైప్ యొక్క వేరియబుల్‌గా పరిగణిస్తుంది వేరియంట్. అయితే, దీన్ని ఎందుకు చేయకూడదు అనేదానికి అనేక కారణాలు ఉన్నాయి:

  1. మెమరీ వినియోగం మరియు గణన వేగం. మీరు డేటా రకం యొక్క సూచనతో వేరియబుల్‌ను ప్రకటించకపోతే, డిఫాల్ట్‌గా అది రకానికి సెట్ చేయబడుతుంది వేరియంట్. ఈ డేటా రకం ఇతర డేటా రకాల కంటే ఎక్కువ మెమరీని ఉపయోగిస్తుంది. ఒక్కో వేరియబుల్‌కు కొన్ని అదనపు బైట్‌లు అంతగా అనిపించకపోవచ్చు, కానీ ఆచరణలో, ప్రోగ్రామ్‌లు వేలాది వేరియబుల్‌లను కలిగి ఉంటాయి (ముఖ్యంగా శ్రేణులతో పని చేస్తున్నప్పుడు). అందువలన, వంటి వేరియబుల్స్ ఉపయోగించే అదనపు మెమరీ వేరియంట్, రకం వేరియబుల్స్‌తో పోలిస్తే పూర్ణ సంఖ్య or ఒకే, గణనీయమైన మొత్తం వరకు జోడించవచ్చు. అదనంగా, రకం వేరియబుల్స్‌తో కార్యకలాపాలు వేరియంట్ ఇతర రకాల వేరియబుల్స్ కంటే చాలా నెమ్మదిగా అమలు చేయబడతాయి, వరుసగా, అదనపు వెయ్యి వేరియబుల్స్ రకం వేరియంట్ గణనలను గణనీయంగా తగ్గించవచ్చు.
  2. వేరియబుల్ పేర్లలో అక్షరదోషాల నివారణ. అన్ని వేరియబుల్స్ ప్రకటించబడితే, అప్పుడు VBA స్టేట్‌మెంట్ − ఉపయోగించవచ్చు ఎంపిక స్పష్టమైనది (మేము దాని గురించి తరువాత మాట్లాడుతాము) అన్ని ప్రకటించని వేరియబుల్స్‌ను గుర్తించడానికి. ఇది తప్పుగా వ్రాసిన వేరియబుల్ పేరు ఫలితంగా ప్రోగ్రామ్‌లో లోపం యొక్క రూపాన్ని తొలగిస్తుంది. ఉదాహరణకు, అనే వేరియబుల్‌ని ఉపయోగించడం sVAT_రేట్, మీరు అక్షర దోషం చేయవచ్చు మరియు ఈ వేరియబుల్‌కు విలువను కేటాయించి, వ్రాయండి: “VATRate = 0,175”. ఇక నుంచి చరవాణి ఉంటుందని భావిస్తున్నారు sVAT_రేట్ 0,175 విలువను కలిగి ఉండాలి – అయితే అది లేదు. ఉపయోగించిన అన్ని వేరియబుల్స్ యొక్క తప్పనిసరి డిక్లరేషన్ మోడ్ ప్రారంభించబడితే, VBA కంపైలర్ వెంటనే లోపాన్ని సూచిస్తుంది, ఎందుకంటే అది వేరియబుల్‌ను కనుగొనదు. VATRరేట్ ప్రకటించిన వాటిలో.
  3. వేరియబుల్ యొక్క డిక్లేర్డ్ రకానికి సరిపోలని విలువలను హైలైట్ చేయడం. మీరు ఒక నిర్దిష్ట రకం యొక్క వేరియబుల్‌ని ప్రకటించి, దానికి వేరొక రకానికి చెందిన డేటాను కేటాయించడానికి ప్రయత్నించినట్లయితే, మీరు ఒక ఎర్రర్‌ను పొందుతారు, అది సరిదిద్దకుండా వదిలేస్తే, ప్రోగ్రామ్ క్రాష్ కావచ్చు. మొదటి చూపులో, వేరియబుల్స్ ప్రకటించకపోవడానికి ఇది మంచి కారణం అనిపించవచ్చు, కానీ వాస్తవానికి, వేరియబుల్స్‌లో ఒకటి అది స్వీకరించాల్సిన తప్పు డేటాను పొందిందని తేలింది - చాలా మంచిది! లేకపోతే, ప్రోగ్రామ్ అమలులో కొనసాగితే, ఫలితాలు తప్పుగా మరియు ఊహించనివిగా ఉండవచ్చు మరియు లోపాల కారణాన్ని కనుగొనడం చాలా కష్టమవుతుంది. మాక్రో "విజయవంతంగా" అమలు చేయబడే అవకాశం కూడా ఉంది. ఫలితంగా, లోపం గుర్తించబడదు మరియు తప్పు డేటాతో పని కొనసాగుతుంది!

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

ఎంపిక స్పష్టమైనది

ఆపరేటర్ ఎంపిక స్పష్టమైనది VBA కోడ్‌లో ఉపయోగించబడే అన్ని వేరియబుల్స్ డిక్లేర్ చేయబడటానికి కారణమవుతుంది మరియు సంకలనం సమయంలో (కోడ్ అమలు ప్రారంభం కావడానికి ముందు) అన్ని అప్రకటిత వేరియబుల్స్ లోపాలుగా ఫ్లాగ్ చేస్తుంది. ఈ ఆపరేటర్‌ని వర్తింపజేయడం కష్టం కాదు - ఈ పంక్తిని VBA ఫైల్ ఎగువన వ్రాయండి:

Option Explicit

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

ఇది ఇలా జరుగుతుంది:

  • విజువల్ బేసిక్ ఎడిటర్ మెను నుండి, క్లిక్ చేయండి టూల్స్ > ఎంపికలు
  • కనిపించే డైలాగ్‌లో, ట్యాబ్‌ను తెరవండి ఎడిటర్
  • పెట్టెను తనిఖీ చేయండి వేరియబుల్ డిక్లరేషన్ అవసరం మరియు ప్రెస్ OK

ప్రారంభించబడినప్పుడు, స్ట్రింగ్ ఎంపిక స్పష్టమైనది సృష్టించబడిన ప్రతి కొత్త మాడ్యూల్ ప్రారంభంలో స్వయంచాలకంగా చేర్చబడుతుంది.

వేరియబుల్స్ మరియు స్థిరాంకాల పరిధి

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

ఎంపిక స్పష్టమైన మసక sVAT_రేటు సింగిల్ ఫంక్షన్‌గా మొత్తం_ఖర్చు() రెట్టింపుగా ... ఫంక్షన్ ముగింపు
వేరియబుల్ అయితే sVAT_రేట్ మాడ్యూల్ ప్రారంభంలోనే ప్రకటించబడింది, అప్పుడు ఈ వేరియబుల్ యొక్క పరిధి మొత్తం మాడ్యూల్ అవుతుంది (అంటే వేరియబుల్ sVAT_రేట్ ఈ మాడ్యూల్‌లోని అన్ని విధానాల ద్వారా గుర్తించబడుతుంది).

అందువల్ల, ఫంక్షన్‌లో ఉంటే మొత్తం_ఖర్చు వేరియబుల్ sVAT_రేట్ కొంత విలువ కేటాయించబడుతుంది, ఆపై అదే మాడ్యూల్‌లో అమలు చేయబడిన తదుపరి ఫంక్షన్ వేరియబుల్‌ని ఉపయోగిస్తుంది sVAT_రేట్ అదే అర్థంతో.

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

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

ఉపయోగించడానికి ప్రయత్నిస్తున్నప్పుడు sVAT_రేట్ మరొక విధానంలో, VBA కంపైలర్ లోపాన్ని నివేదిస్తుంది ఎందుకంటే ఈ వేరియబుల్ ఫంక్షన్ వెలుపల ప్రకటించబడలేదు మొత్తం_ఖర్చు (ఆపరేటర్ ఉపయోగించబడుతుందని అందించబడింది ఎంపిక స్పష్టమైనది).

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

మార్గం ద్వారా, కీవర్డ్‌కు బదులుగా మాడ్యూల్ స్థాయిలో వేరియబుల్‌ని ప్రకటించడానికి డిమ్ కీవర్డ్ ఉపయోగించవచ్చు ప్రైవేట్, ఈ వేరియబుల్ ప్రస్తుత మాడ్యూల్‌లో మాత్రమే ఉపయోగం కోసం ఉద్దేశించబడిందని సూచిస్తుంది.

స్థిరాంకాలను ప్రకటించడానికి మీరు కీలకపదాలను కూడా ఉపయోగించవచ్చు. ప్రజా и ప్రైవేట్, కానీ కీవర్డ్‌కు బదులుగా కాదు కాన్స్ట్, దానితో పాటు.

కింది ఉదాహరణలు కీలక పదాల వినియోగాన్ని చూపుతాయి ప్రజా и ప్రైవేట్ వేరియబుల్స్ మరియు స్థిరాంకాలకి వర్తించబడుతుంది.

ఎంపిక స్పష్టమైన పబ్లిక్ sVAT_రేట్ సింగిల్ పబ్లిక్ కాన్స్ట్ iMax_Count = 5000 ...    
ఈ ఉదాహరణలో, కీవర్డ్ ప్రజా వేరియబుల్ డిక్లేర్ చేయడానికి ఉపయోగిస్తారు sVAT_రేట్ మరియు స్థిరాంకాలు iMax_కౌంట్. ఈ విధంగా ప్రకటించబడిన మూలకాల పరిధి మొత్తం ప్రస్తుత ప్రాజెక్ట్ అవుతుంది.

దీని అర్థం sVAT_రేట్ и iMax_కౌంట్ ఏదైనా ప్రాజెక్ట్ మాడ్యూల్‌లో అందుబాటులో ఉంటుంది.

ఎంపిక స్పష్టమైన ప్రైవేట్ sVAT_రేట్ సింగిల్ ప్రైవేట్ కాన్స్ట్ ఐమాక్స్_కౌంట్ = 5000 ...    
ఈ ఉదాహరణలో, ఒక వేరియబుల్ డిక్లేర్ చేయడానికి sVAT_రేట్ మరియు స్థిరాంకాలు iMax_కౌంట్ కీవర్డ్ ఉపయోగించబడింది ప్రైవేట్. ఈ మూలకాల యొక్క పరిధి ప్రస్తుత మాడ్యూల్.

దీని అర్థం sVAT_రేట్ и iMax_కౌంట్ ప్రస్తుత మాడ్యూల్ యొక్క అన్ని విధానాలలో అందుబాటులో ఉంటుంది, కానీ ఇతర మాడ్యూల్‌లలోని విధానాలకు అందుబాటులో ఉండదు.

సమాధానం ఇవ్వూ