यह ट्यूटोरियल प्रदर्शित करेगा कि वीबीए में वाइल्डकार्ड का उपयोग कैसे करें।
वाइल्डकार्ड का उपयोग सभी प्रोग्रामिंग भाषाओं और SQL सर्वर जैसे डेटाबेस एप्लिकेशन में किया जाता है। वाइल्डकार्ड को एक प्रतीक के रूप में परिभाषित किया जा सकता है जिसका उपयोग टेक्स्ट स्ट्रिंग में एक या अधिक वर्णों को बदलने के लिए किया जाता है। उदाहरण के लिए यह टेक्स्ट स्ट्रिंग - "मो*" - माँ, माउस, मूस, माँ इत्यादि शब्द पायेगी; जबकि यह टेक्स्ट स्ट्रिंग "मो?" क्या केवल माँ शब्द वाइल्डकार्ड के रूप में मिलेगा? केवल एक वर्ण को प्रतिस्थापित करता है।
हम लाइक ऑपरेटर के साथ वाइल्डकार्ड का उपयोग करते हैं जो वीबीए रेगेक्स का एक आसान विकल्प है।
VBA में Asterix (*) वाइल्डकार्ड का उपयोग करना
Asterix वाइल्डकार्ड VBA स्ट्रिंग में एक या अधिक वर्णों को प्रतिस्थापित करता है।
आइए एक्सेल में सेल की निम्न श्रेणी को देखें:
हमारे वीबीए कोड में एस्टरिक्स वाइल्डकार्ड का उपयोग करके, हम "एम" से शुरू होने वाले सभी फर्स्टनाम ढूंढ सकते हैं और टेक्स्ट का रंग लाल में बदल सकते हैं।
12345678 | उप CheckForM ()मंद x पूर्णांक के रूप मेंx = ३ से ८ . के लिएअगर रेंज ("बी" और एक्स)। मान "एम *" की तरह है तोरेंज ("बी" और एक्स)। फ़ॉन्ट। रंग = vbRedअगर अंतअगला एक्सअंत उप |
इसलिए हमने सीमा के माध्यम से लूप किया है और सभी पहले नाम पाए हैं जो एम अक्षर से शुरू होते हैं क्योंकि हमारी वाइल्डकार्ड स्ट्रिंग है "एम*”
ऊपर दिए गए कोड को चलाने का परिणाम नीचे दिखाया गया है।
यदि हम वाइल्डकार्ड स्ट्रिंग "Ma*" का उपयोग करते हैं - तो केवल B3 और B4 में पहले नाम बदलेंगे।
VBA में प्रश्न चिह्न (?) वाइल्डकार्ड का उपयोग करना
प्रश्न चिह्न VBA स्ट्रिंग में एकल वर्ण को प्रतिस्थापित करेगा।
निम्नलिखित डेटा पर विचार करें:
हम वाइल्डकार्ड स्ट्रिंग "? आईएम" का उपयोग किसी भी पहले नाम को खोजने के लिए कर सकते हैं जो "आईएम" में समाप्त होता है
12345678 | उप CheckForIM ()मंद x पूर्णांक के रूप मेंx = ३ से ८ . के लिएअगर रेंज ("बी" और एक्स)। मान जैसे "? आईएम" तोरेंज ("बी" और एक्स)। फ़ॉन्ट। रंग = vbRedअगर अंतअगला एक्सअंत उप |
इस कोड को चलाने का परिणाम नीचे दिखाया गया है:
वाइल्डकार्ड के रूप में [चार सूची] का उपयोग करना
अनुमत वर्णों की वर्ण सूची के अलावा, हमें प्रश्न चिह्न का उपयोग करने की अनुमति देने के लिए ऊपर दिए गए उदाहरण को थोड़ा संशोधित किया जा सकता है। इसलिए वाइल्डकार्ड स्ट्रिंग को "?[e-i]m" में संशोधित किया जा सकता है, जहां पहला वर्ण कुछ भी हो सकता है, दूसरा वर्ण e और i के बीच का वर्ण होना चाहिए और अंतिम अक्षर का वर्ण "m" होना चाहिए। केवल 3 वर्णों की अनुमति है।
12345678 | उप चारलिस्टटेस्ट ()मंद x पूर्णांक के रूप मेंx = ३ से ८ . के लिएअगर रेंज ("बी" और एक्स)। मान जैसे "? [ई-आई] एम" तोरेंज ("बी" और एक्स)। फ़ॉन्ट। रंग = vbRedअगर अंतअगला एक्सअंत उप |
इस कोड का परिणाम होगा:
वीबीए प्रोग्रामिंग | कोड जेनरेटर आपके लिए काम करता है!
VBA में हैश (#) वाइल्डकार्ड का उपयोग करना
हैश (#) वाइल्डकार्ड VBA स्ट्रिंग में एक अंक को बदल देता है। हम 0 से 9 के बीच मैच कर सकते हैं।
12345678910 | उप चेकफॉरनंबर ()मंद x पूर्णांक के रूप में, y पूर्णांक के रूप मेंx = ३ से ८ . के लिएy = 2 से 5 . के लिएअगर ActiveSheet.Cells(x, y) जैसे "##" तोActiveSheet.Cells(x, y).Font.Color = vbRedअगर अंतअगला yअगला एक्सअंत उप |
उपरोक्त कोड रेंज ("बी 3: ई 8") में सभी कोशिकाओं के माध्यम से लूप करेगा और सेल में टेक्स्ट के रंग को लाल में बदल देगा यदि उस सेल में दो अंकों की संख्या मिलती है।
नीचे दिए गए उदाहरण में, कोड केवल संख्या को बदलेगा यदि अंतिम संख्या 9 है।
12345678910 | उप CheckFor9 ()मंद x पूर्णांक के रूप में, y पूर्णांक के रूप मेंx = ३ से ८ . के लिएy = 2 से 5 . के लिएअगर ActiveSheet.Cells(x, y) जैसे "#9" तोActiveSheet.Cells(x, y).Font.Color = vbRedअगर अंतअगला yअगला एक्सअंत उप |