VBA స్ట్రింగ్ పోలిక | రెండు స్ట్రింగ్ విలువలను ఎలా పోల్చాలి?
ఎక్సెల్ VBA స్ట్రింగ్ పోలిక
VBA లోని రెండు తీగలను పోల్చడానికి మనకు అంతర్నిర్మిత ఫంక్షన్ ఉంది, “StrComp”. దీనిని మనం “స్ట్రింగ్ పోలిక”, ఈ ఫంక్షన్ VBA తో మాత్రమే అందుబాటులో ఉంది మరియు వర్క్షీట్ ఫంక్షన్గా అందుబాటులో లేదు. ఇది ఏదైనా రెండు తీగలను పోల్చి ఫలితాలను ఇస్తుంది “జీరో (0)” రెండు తీగలను సరిపోలితే మరియు సరఫరా చేసిన రెండు తీగలను సరిపోలకపోతే మనకు లభిస్తుంది “ఒకటి (1)” ఫలితంగా.
VBA లేదా ఎక్సెల్ లో, మేము చాలా విభిన్న దృశ్యాలను ఎదుర్కొంటాము, అలాంటి ఒక దృశ్యం “రెండు స్ట్రింగ్ విలువలను పోల్చడం”. సాధారణ వర్క్షీట్లో, మేము ఈ బహుళ మార్గాలను చేయగలము, కాని VBA లో మీరు దీన్ని ఎలా చేస్తారు?
క్రింద “StrComp” ఫంక్షన్ యొక్క వాక్యనిర్మాణం ఉంది.
మొదట, రెండు వాదనలు చాలా సులభం,
- కోసం స్ట్రింగ్ 1 మేము పోల్చిన మొదటి విలువ ఏమిటో సరఫరా చేయాలి
- కోసం స్ట్రింగ్ 2 మేము పోల్చిన రెండవ విలువను సరఫరా చేయాలి.
- [సరిపోల్చండి] ఇది StrComp ఫంక్షన్ యొక్క ఐచ్ఛిక వాదన. మేము కేస్ సెన్సిటివ్ పోలికను పోల్చాలనుకున్నప్పుడు ఇది సహాయపడుతుంది. ఉదాహరణకు ఈ వాదనలో “ఎక్సెల్” “ఎక్సెల్” కి సమానం కాదు ఎందుకంటే ఈ రెండు పదాలు కేస్ సెన్సిటివ్.
మేము ఇక్కడ మూడు విలువలను సరఫరా చేయవచ్చు.
- “కోసం జీరో (0)బైనరీ పోల్చండి”అనగా“ ఎక్సెల్ ”“ ఎక్సెల్ ”కి సమానం కాదు. కేస్ సున్నితమైన పోలిక కోసం మేము 0 ను సరఫరా చేయవచ్చు.
- ఒకటి (1) కోసం “టెక్స్ట్ పోల్చండి”అనగా“ ఎక్సెల్ ”“ ఎక్సెల్ ”కి సమానం. ఇది నాన్-కేస్ సున్నితమైన పోలిక.
- రెండు (2) ఇది డేటాబేస్ పోలిక కోసం మాత్రమే.
“StrComp” ఫంక్షన్ యొక్క ఫలితాలు డిఫాల్ట్ TRUE లేదా FALSE కాదు కానీ మారుతూ ఉంటాయి. క్రింద “StrComp” ఫంక్షన్ యొక్క విభిన్న ఫలితాలు ఉన్నాయి.
- మేము పొందుతాము “0” సరఫరా చేసిన తీగలను సరిపోలితే ఫలితం.
- మేము పొందుతాము “1” సరఫరా చేయబడిన తీగలను సరిపోలకపోతే మరియు సంఖ్యా సరిపోలిక విషయంలో, స్ట్రింగ్ 1 స్ట్రింగ్ 2 కంటే ఎక్కువగా ఉంటే మనకు 1 లభిస్తుంది.
- మేము పొందుతాము “-1” స్ట్రింగ్ 1 సంఖ్య స్ట్రింగ్ 2 సంఖ్య కంటే తక్కువగా ఉంటే.
VBA లో స్ట్రింగ్ పోలిక ఎలా చేయాలి?
మీరు ఈ VBA స్ట్రింగ్ పోలిక ఎక్సెల్ మూసను ఇక్కడ డౌన్లోడ్ చేసుకోవచ్చు - VBA స్ట్రింగ్ పోలిక ఎక్సెల్ మూసఉదాహరణ # 1
మేము సరిపోలుతాము “బెంగళూరు”స్ట్రింగ్కు వ్యతిరేకంగా“బెంగళూరు”.
మొదట, రెండు స్ట్రింగ్ విలువలను నిల్వ చేయడానికి రెండు VBA వేరియబుల్స్ ను స్ట్రింగ్ గా ప్రకటించండి.
కోడ్:
ఉప స్ట్రింగ్_ కంపారిసన్_ఎక్సాంపుల్ 1 () డిమ్ వాల్యూ 1 స్ట్రింగ్ డిమ్ వాల్యూ 2 గా స్ట్రింగ్ ఎండ్ సబ్
ఈ రెండు వేరియబుల్స్ కోసం రెండు స్ట్రింగ్ విలువలను నిల్వ చేస్తాయి.
కోడ్:
ఉప స్ట్రింగ్_ కంపారిసన్_ఎక్సాంపుల్ 1 () డిమ్ వాల్యూ 1 స్ట్రింగ్ డిమ్ వాల్యూ 2 గా స్ట్రింగ్ వాల్యూ 1 = "బెంగళూరు" వాల్యూ 2 = "బెంగళూరు" ఎండ్ సబ్
ఇప్పుడు ఫలితాన్ని నిల్వ చేయడానికి మరో వేరియబుల్ ప్రకటించండి “StrComp”ఫంక్షన్.
కోడ్:
ఉప స్ట్రింగ్_ కంపారిసన్_ఎక్సాంపుల్ 1 () డిమ్ వాల్యూ 1 స్ట్రింగ్ డిమ్ వాల్యూ 2 గా స్ట్రింగ్ వాల్యూ 1 = "బెంగళూరు" వాల్యూ 2 = "బెంగళూరు" డిమ్ ఫైనల్ రిసల్ట్ స్ట్రింగ్ ఎండ్ సబ్
ఈ వేరియబుల్ కోసం “StrComp” ఫంక్షన్ను తెరవండి.
కోడ్:
ఉప స్ట్రింగ్_కంపారిసన్_ఎక్సాంపుల్ 1 () డిమ్ వాల్యూ 1 స్ట్రింగ్ డిమ్ వాల్యూ 2 గా స్ట్రింగ్ వాల్యూ 1 = "బెంగళూరు" వాల్యూ 2 = "బెంగళూరు" డిమ్ ఫైనల్ రిసల్ట్ స్ట్రింగ్ ఫైనల్ రిసల్ట్ = స్ట్రామ్ కాంప్ (ఎండ్ సబ్
“స్ట్రింగ్ 1” & “స్ట్రింగ్ 2” కోసం మేము ఇప్పటికే వేరియబుల్స్ ద్వారా విలువలను కేటాయించాము, కాబట్టి వరుసగా వేరియబుల్ పేర్లను నమోదు చేయండి.
కోడ్:
సబ్ స్ట్రింగ్_కంపారిసన్_ఎక్సాంపుల్ 1 () డిమ్ వాల్యూ 1 స్ట్రింగ్ డిమ్ వాల్యూ 2 గా స్ట్రింగ్ వాల్యూ 1 = "బెంగళూరు" వాల్యూ 2 = "బెంగళూరు" డిమ్ ఫైనల్ రిసల్ట్ స్ట్రింగ్ ఫైనల్ రిజల్ట్ = స్ట్రోకాంప్ (వాల్యూ 1, వాల్యూ 2, ఎండ్ సబ్
ఫంక్షన్ యొక్క చివరి భాగం ఈ ఎంపిక కోసం “పోల్చండి” “VbTextCompare”.
కోడ్:
ఉప స్ట్రింగ్_కంపారిసన్_ఎక్సాంపుల్ 1 () డిమ్ వాల్యూ 1 స్ట్రింగ్ డిమ్ వాల్యూ 2 గా స్ట్రింగ్ వాల్యూ 1 = "బెంగళూరు" వాల్యూ 2 = "బెంగళూరు" డిమ్ ఫైనల్ రిసల్ట్ స్ట్రింగ్ ఫైనల్ రిజల్ట్ = స్ట్రక్ కాంప్ (వాల్యూ 1, వాల్యూ 2, విబిటెక్స్ట్ కంపేర్)
ఇప్పుడు చూపించు “తుది ఫలితం” VBA లోని సందేశ పెట్టెలో వేరియబుల్.
కోడ్:
ఉప స్ట్రింగ్_కంపారిసన్_ఎక్సంపుల్ 1 () మసక విలువ 1 స్ట్రింగ్ డిమ్ వాల్యూ 2 గా స్ట్రింగ్ వాల్యూ 1 = "బెంగళూరు" విలువ 2 = "బెంగళూరు" డిమ్ ఫైనల్ రిసల్ట్ స్ట్రింగ్ ఫైనల్ రిజల్ట్ = స్ట్రక్ కాంప్ (వాల్యూ 1, వాల్యూ 2, విబిటెక్స్ట్ కాంపేస్ ఫెయిల్) Msg
సరే, కోడ్ను రన్ చేసి ఫలితాన్ని చూద్దాం.
అవుట్పుట్:
“బెంగళూరు” మరియు “బెంగళూరు” రెండూ ఒకే విధంగా ఉన్నందున మనకు ఫలితం 0, అంటే సరిపోలిక. మేము వాదనను అందించినందున రెండు విలువలు కేస్ సెన్సిటివ్ “VbTextCompare” ఇది కేస్ సెన్సిటివ్ మ్యాచ్ను విస్మరించింది మరియు విలువలతో మాత్రమే సరిపోలింది, కాబట్టి రెండు విలువలు ఒకే విధంగా ఉంటాయి మరియు ఫలితం 0 అంటే నిజం.
కోడ్:
ఉప స్ట్రింగ్_కంపారిసన్_ఎక్సంపుల్ 1 () మసక విలువ 1 స్ట్రింగ్ డిమ్ వాల్యూ 2 గా స్ట్రింగ్ వాల్యూ 1 = "బెంగళూరు" విలువ 2 = "బెంగళూరు" డిమ్ ఫైనల్ రిసల్ట్ స్ట్రింగ్ ఫైనల్ రిజల్ట్ = స్ట్రక్ కాంప్ (వాల్యూ 1, వాల్యూ 2, విబిటెక్స్ట్ కాంపేస్ ఫెయిల్) Msg
ఉదాహరణ # 2
అదే కోడ్ కోసం, మేము పోలిక పద్ధతిని మారుస్తాము “VbTextCompare” కు “VbBinaryCompare”.
కోడ్:
సబ్ స్ట్రింగ్_కంపారిసన్_ఎక్సాంపుల్ 2 () డిమ్ వాల్యూ 1 స్ట్రింగ్ డిమ్ వాల్యూ 2 గా స్ట్రింగ్ వాల్యూ 1 = "బెంగళూరు" వాల్యూ 2 = "బెంగళూరు" డిమ్ ఫైనల్ రిజల్ట్ స్ట్రింగ్ ఫైనల్ రిజల్ట్ = స్ట్రక్ కాంప్ (వాల్యూ 1, వాల్యూ 2, విబిబైనల్ కాంపేర్)
ఇప్పుడు కోడ్ను రన్ చేసి ఫలితాన్ని చూడండి.
అవుట్పుట్:
రెండు తీగలను ఒకేలా ఉన్నప్పటికీ, మనకు 1 ఫలితం వచ్చింది, అంటే సరిపోలడం లేదు ఎందుకంటే మేము పోలిక పద్ధతిని వర్తింపజేసాము “VbBinaryCompare” ఇది రెండు విలువలను కేస్ సెన్సిటివ్గా పోలుస్తుంది.
ఉదాహరణ # 3
ఇప్పుడు మనం సంఖ్యా విలువలను ఎలా పోల్చాలో చూద్దాం. ఒకే కోడ్ కోసం, మేము వేర్వేరు విలువలను కేటాయిస్తాము.
కోడ్:
ఉప స్ట్రింగ్_కంపారిసన్_ఎక్సాంపుల్ 3 () మసక విలువ 1 స్ట్రింగ్ డిమ్ వాల్యూ 2 గా స్ట్రింగ్ వాల్యూ 1 = 500 వాల్యూ 2 = 500 డిమ్ ఫైనల్ రిసల్ట్ స్ట్రింగ్ ఫైనల్ రిజల్ట్ = స్ట్రక్ కాంప్ (వాల్యూ 1, వాల్యూ 2, విబిబైనరీ కంపేర్) ఎంఎస్జిబాక్స్ ఫైనల్ రిసల్ట్ ఎండ్ సబ్
రెండు విలువలు 500 మరియు రెండు విలువలు సరిపోలినందున మనకు 0 లభిస్తుంది.
అవుట్పుట్:
ఇప్పుడు నేను విలువ 1 సంఖ్యను 500 నుండి 100 కి మారుస్తాను.
కోడ్:
సబ్ స్ట్రింగ్_కంపారిసన్_ఎక్సాంపుల్ 3 () డిమ్ వాల్యూ 1 స్ట్రింగ్ డిమ్ వాల్యూ 2 గా స్ట్రింగ్ వాల్యూ 1 = 1000 వాల్యూ 2 = 500 డిమ్ ఫైనల్ రిసల్ట్ స్ట్రింగ్ ఫైనల్ రిజల్ట్ = స్ట్రక్ కాంప్ (వాల్యూ 1, వాల్యూ 2, విబిబైనరీ కంపేర్) ఎంఎస్జిబాక్స్ ఫైనల్ రిసల్ట్ ఎండ్ సబ్
కోడ్ను అమలు చేసి ఫలితాన్ని చూడండి.
అవుట్పుట్:
విలువ 1 & విలువ 2 ఒకేలా ఉండదని మాకు తెలుసు, కాని ఫలితం 1 కి బదులుగా -1. ఎందుకంటే స్ట్రింగ్ 1 విలువ స్ట్రింగ్ 2 కన్నా ఎక్కువగా ఉన్నప్పుడు సంఖ్యా పోలిక కోసం మనకు ఈ -1 లభిస్తుంది.
కోడ్:
ఉప స్ట్రింగ్_కంపారిసన్_ఎక్సాంపుల్ 3 () మసక విలువ 1 స్ట్రింగ్ డిమ్ వాల్యూ 2 గా స్ట్రింగ్ వాల్యూ 1 = 1000 వాల్యూ 2 = 500 డిమ్ ఫైనల్ రిసల్ట్ స్ట్రింగ్ ఫైనల్ రిజల్ట్ = స్ట్రక్ కాంప్ (వాల్యూ 1, వాల్యూ 2, విబిబైనరీ కంపేర్) ఎంఎస్జిబాక్స్ ఫైనల్ రిసల్ట్ ఎండ్ సబ్
ఇప్పుడు నేను విలువలను రివర్స్ చేస్తాను.
కోడ్:
ఉప స్ట్రింగ్_కంపారిసన్_ఎక్సాంపుల్ 3 () డిమ్ వాల్యూ 1 స్ట్రింగ్ డిమ్ వాల్యూ 2 గా స్ట్రింగ్ వాల్యూ 1 = 500 వాల్యూ 2 = 1000 డిమ్ ఫైనల్ రిసల్ట్ స్ట్రింగ్ ఫైనల్ రిజల్ట్ = స్ట్రక్ కాంప్ (వాల్యూ 1, వాల్యూ 2, విబిబైనరీ కంపేర్) ఎంఎస్జిబాక్స్ ఫైనల్ రిసల్ట్ ఎండ్ సబ్
కోడ్ను అమలు చేసి ఫలితాన్ని చూడండి.
అవుట్పుట్:
సరిపోలకపోతే ఇది ప్రత్యేకమైనది కాదు, మనకు 1 మాత్రమే లభిస్తుంది.
ఇక్కడ గుర్తుంచుకోవలసిన విషయాలు
- “పోల్చండి]“ StrComp ”యొక్క వాదన ఐచ్ఛికం కాని కేసు సున్నితమైన మ్యాచ్ విషయంలో మేము దీనిని ఉపయోగించుకోవచ్చు మరియు ఎంపిక “VbBinaryCompare”.
- స్ట్రింగ్ 1 స్ట్రింగ్ 2 కంటే ఎక్కువగా ఉంటే సంఖ్యా విలువల ఫలితం కొద్దిగా భిన్నంగా ఉంటుంది మరియు ఫలితం -1 అవుతుంది.
- సరిపోలితే ఫలితాలు 0 మరియు సరిపోలకపోతే 1.