VBA StrComp - VCom में स्ट्रिंग्स की तुलना StrComp फंक्शन का उपयोग करके करें

एक्सेल VBA StrComp फ़ंक्शन

VBA StrComp एक अंतर्निहित फ़ंक्शन है जिसकी तुलना यह करने के लिए की जाती है कि दो स्ट्रिंग मान समान हैं या नहीं। हालाँकि, परिणाम वर्कशीट की तरह TRUE या FALSE को डिफॉल्ट नहीं किया गया है बल्कि अलग है।

इससे पहले कि हम परिणाम देखें, मुझे पहले StrComp फ़ंक्शन का सिंटैक्स दिखाते हैं।

  • स्ट्रिंग 1: स्ट्रिंग 1 वह पहला स्ट्रिंग या मान है जिसकी हम तुलना कर रहे हैं।
  • स्ट्रिंग 2: स्ट्रिंग 2 दूसरा स्ट्रिंग या मूल्य है जो हम स्ट्रिंग 1 के खिलाफ तुलना कर रहे हैं ।
  • तुलना करें: हम यहां तीन विकल्प प्रदान कर सकते हैं।
      • 0 = बाइनरी तुलना। यह केस संवेदनशील गणना करता है। उदाहरण के लिए, "हैलो" "हेलो" के बराबर नहीं है क्योंकि दोनों शब्दों के मामले अलग-अलग हैं। यदि आप इस पैरामीटर को अनदेखा करते हैं तो यह डिफ़ॉल्ट मान है। vbBinaryCompare
      • 1 = पाठ तुलना। यह विकल्प गैर-केस संवेदनशील गणना करता है। उदाहरण के लिए, "हैलो" "हेलो" घटना के बराबर है, हालांकि दोनों शब्दों के मामले अलग-अलग हैं। vbTextCompare
      • 2 = तुलना करें। यह डेटाबेस तुलना करता है।

स्ट्रिंग तुलना (StrComp) समारोह के परिणाम

जैसा कि मैंने बताया कि जब हम वर्कशीट में दो मूल्यों की तुलना करते हैं, तो हमें परिणाम TRUE या FALSE के रूप में मिलते हैं। लेकिन VBA स्ट्रिंग तुलनात्मक फ़ंक्शन के साथ, परिणाम समान नहीं हैं।

  • हमें शून्य (0) मिलता है जब स्ट्रिंग 1 स्ट्रिंग 2 के बराबर होता है
  • हम मिल एक (1) जब स्ट्रिंग 1 मूल्य से अधिक है स्ट्रिंग 2 मूल्य
  • हम माइनस एक (-1) प्राप्त करते हैं जब स्ट्रिंग 1 का मूल्य स्ट्रिंग 2 से कम होता है
  • स्ट्रिंग 1 या स्ट्रिंग 2 मान NULL होने पर हमें NULL मिलता है।

VBA StrComp फ़ंक्शन का उपयोग करने के उदाहरण

उदाहरण 1

एक सरल उदाहरण से शुरू करते हैं। उदाहरण के लिए, हम दो मानों की तुलना करेंगे, जैसे "एक्सेल VBA" और "एक्सेल VBA"।

कोड:

उप StrComp_Example1 () डिम फर्स्टवैल्यू स्ट्रिंग के रूप में 'स्टोर करने के लिए स्ट्रिंग 1 मान डिम सेकंडवैल्यू स्ट्रिंग के रूप में' स्टोर करने के लिए स्ट्रिंग 2 मान डिम रिजल्ट स्ट्रिंग के रूप में स्टोर करने के लिए स्टॉर्मपूल फर्स्टवैलू = "एक्सेल वीबीए" 'स्ट्रिंग 1 मान SecondValue = असाइन करें "एक्सेल VBA" स्ट्रिंग 2 मान परिणाम = StrComp (FirstValue, SecondValue, vbBinaryCompare) असाइन करें 'StrComp फ़ंक्शन को लागू करें MsgBox परिणाम' संदेश बॉक्स में परिणाम दिखाएं

जब मैं इस कोड को चलाता हूं, तो हमें परिणाम के रूप में शून्य (0) मिलेगा क्योंकि स्ट्रिंग 1 और स्ट्रिंग 2 मान दोनों समान हैं।

उदाहरण # 2

अब मैं दो शब्दों के मामलों को बदलूंगा।

स्ट्रिंग 1 = एक्सेल Vba

स्ट्रिंग 2 = एक्सेल VBA

कोड:

Sub StrComp_Example2 () डिम फर्स्टवैल्यू स्ट्रिंग के रूप में 'स्टोर करने के लिए स्ट्रिंग 1 मान डिम सेकंडवैल्यू स्ट्रिंग के रूप में' स्टोर करने के लिए स्ट्रिंग 2 मान डिम रिजल्ट स्ट्रिंग के रूप में स्टोर करने के लिए स्टॉर्मपूल FirstValue = "एक्सेल Vba" 'स्ट्रिंग 1 मान SecondValue = असाइन करें "एक्सेल VBA" स्ट्रिंग 2 मान परिणाम = StrComp (FirstValue, SecondValue, vbBinaryCompare) असाइन करें 'StrComp फ़ंक्शन लागू करें MsgBox परिणाम' संदेश बॉक्स में परिणाम दिखाएं

जब मैं इस कोड को चलाता हूं, तो हमें 1 मिलेगा क्योंकि चूंकि हमने “ vbBinaryCompare ” के रूप में तुलना तर्क की आपूर्ति की है , इसलिए यह केस-संवेदी वर्णों की जांच करेगा।

अब मैं “ vbBinaryCompare” से “ vbTextCompare” से तुलना विकल्प बदलूँगा

कोड:

उप StrComp_Example3 () स्ट्रिंग फर्स्ट वेलवैल्यू स्ट्रिंग के रूप में 'स्टोर करने के लिए 1 मान डिम सेकंडवैल्यू स्ट्रिंग के रूप में' स्टोर करने के लिए स्ट्रिंग 2 मान डिम रिजल्ट स्ट्रिंग के रूप में 'स्टोर करने के लिए स्टॉर्मपूल फर्स्टवैल्यू = "एक्सेल Vba"' स्ट्रिंग 1 मान सेकंड वैल्यू निर्धारित करें = "एक्सेल VBA" स्ट्रिंग 2 मान परिणाम = StrComp (FirstValue, SecondValue, vbTextCompare) असाइन करें 'StrComp फ़ंक्शन को लागू करें MsgBox परिणाम' संदेश बॉक्स में परिणाम दिखाएं

इस तुलना के साथ , हमें शून्य (0) मिलेगा क्योंकि vbaTextCompare केस संवेदनशील शब्दों को अनदेखा करता है।

उदाहरण # 3

IF कंडीशन के साथ VBA StrComp का केस स्टडी

मान लें कि आपके पास नीचे की छवि जैसा डेटा है।

हम तुलना करने की आवश्यकता स्ट्रिंग 1 के साथ स्ट्रिंग 2 और पर पहुंचने के परिणाम के रूप में "सटीक" अगर दोनों एक ही हैं, और परिणाम होना चाहिए "सटीक नहीं।"

नीचे दिया गया कोड हमारे लिए काम करेगा।

कोड:

Sub StrComp_Example4 () डिम रिजल्ट ऐज स्ट्रिंग डिम I अस इंटेगर फॉर i = 2 टू 6 रिजल्ट = स्ट्रॉम्प (सेल्स (i, 1)। वैल्यू, सेल्स (i, 2)। वैल्यू: रिजल्ट = 0 फिर सेल) (i, 3) ) .Value = "सटीक" एल्स सेल्स (i, 3)

जब मैं Excel में उपरोक्त VBA कोड चलाता हूं, तो हमें नीचे परिणाम मिलेगा।

यदि आप C4 सेल स्ट्रिंग 1 को देखते हैं और स्ट्रिंग 2 समान हैं, लेकिन वर्ण संवेदनशील हैं, तो परिणाम "सटीक नहीं है।" इस समस्या को दूर करने के लिए, हमें vbTextCompare की तुलना करने की आवश्यकता है

नीचे C4 सेल के लिए "सटीक" के रूप में परिणाम प्राप्त करने के लिए संशोधित कोड है।

कोड:

Sub StrComp_Example4 () डिम रिजल्ट ऐज स्ट्रिंग डिम I ऐज एंगर फॉर i = २ से ६ रिजल्ट = StrComp (सेल्स (१, १) ।वैल्यू, सेल्स (i, २) ।वैल्यू, vbTextCompare) अगर रिजल्ट = ० तो सेल्स (i) , 3) .Value = "सटीक" एल्स सेल (i, 3) .Value = "सटीक नहीं" अंत यदि अगला है तो मैं उप

यह कोड नीचे दिए गए परिणाम को लौटाएगा।

दिलचस्प लेख...