वीबीए: स्ट्रिंग में वर्णों को कैसे बदलें


आप स्ट्रिंग में वर्णों को बदलने के लिए VBA में रिप्लेस() विधि का उपयोग कर सकते हैं।

यह विधि निम्नलिखित मूल वाक्यविन्यास का उपयोग करती है:

बदलें (अभिव्यक्ति, ढूंढें, बदलें, प्रारंभ करें, गिनें)

सोना:

  • अभिव्यक्ति : वह स्ट्रिंग जिसमें आप वर्णों को बदलना चाहते हैं
  • ढूँढ़ें : खोजने के लिए स्ट्रिंग
  • प्रतिस्थापित करें : प्रतिस्थापन के रूप में उपयोग की जाने वाली स्ट्रिंग
  • प्रारंभ ( वैकल्पिक ) : खोजने के लिए स्ट्रिंग में प्रारंभिक स्थिति
  • गिनती ( वैकल्पिक ) : निष्पादित किए जाने वाले प्रतिस्थापनों की संख्या

निम्नलिखित उदाहरण दिखाते हैं कि एक्सेल में स्ट्रिंग्स की निम्नलिखित सूची के साथ व्यवहार में इस पद्धति का उपयोग कैसे किया जाए:

उदाहरण 1: एक स्ट्रिंग (केस सेंसिटिव) में वर्णों की सभी घटनाओं को बदलने के लिए वीबीए का उपयोग करें

मान लीजिए कि हम प्रत्येक स्ट्रिंग में “यह” को “वह” से बदलना चाहते हैं।

ऐसा करने के लिए हम निम्नलिखित मैक्रो बना सकते हैं:

 Sub ReplaceChar()
Dim i As Integer

For i = 2 To 8
    Range(" B " & i) = Replace(Range(" A " & i), " this ", " THAT ")
Next i
End Sub

जब हम इस मैक्रो को चलाते हैं, तो हमें निम्नलिखित आउटपुट प्राप्त होता है:

कॉलम बी कॉलम ए में प्रत्येक स्ट्रिंग को प्रदर्शित करता है, जिसमें “यह” की प्रत्येक घटना को “वह” से बदल दिया जाता है।

ध्यान दें कि यह प्रतिस्थापन केस संवेदी है।

अर्थात्, “यह” की प्रत्येक घटना को प्रतिस्थापित कर दिया जाता है लेकिन “इस” की प्रत्येक घटना को अकेला छोड़ दिया जाता है।

उदाहरण 2: एक स्ट्रिंग में वर्णों की सभी घटनाओं को बदलने के लिए वीबीए का उपयोग करें (केस असंवेदनशील)

मान लीजिए कि हम प्रत्येक स्ट्रिंग में “यह” (मामले की परवाह किए बिना) को “वह” से बदलना चाहते हैं।

ऐसा करने के लिए हम निम्नलिखित मैक्रो बना सकते हैं:

 Sub ReplaceChar()
Dim i As Integer

For i = 2 To 8
    Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", " THAT ")
Next i
End Sub

जब हम इस मैक्रो को चलाते हैं, तो हमें निम्नलिखित आउटपुट प्राप्त होता है:

कॉलम बी कॉलम ए में प्रत्येक स्ट्रिंग को प्रदर्शित करता है, जिसमें “यह” की प्रत्येक घटना को “वह” से बदल दिया जाता है।

ध्यान दें कि यह प्रतिस्थापन केस संवेदी नहीं है

अर्थात्, “इस” की प्रत्येक घटना (चाहे बड़े अक्षरों में हो या नहीं) को प्रतिस्थापित कर दिया जाता है।

हम प्रत्येक स्ट्रिंग में “यह” खोजने से पहले कॉलम ए में प्रत्येक स्ट्रिंग को लोअरकेस में परिवर्तित करने के लिए LCase पद्धति का उपयोग करके इस केस-असंवेदनशील प्रतिस्थापन को करने में सक्षम थे।

उदाहरण 3: एक स्ट्रिंग में किसी कैरेक्टर की पहली एन घटनाओं को बदलने के लिए वीबीए का उपयोग करें

मान लीजिए कि हम प्रत्येक स्ट्रिंग में केवल “इस” (मामले की परवाह किए बिना) की पहली घटना को “वह” से बदलना चाहते हैं।

ऐसा करने के लिए हम निम्नलिखित मैक्रो बना सकते हैं:

 Sub ReplaceChar()
Dim i As Integer

For i = 2 To 8
    Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", " THAT ", Count:=1)
Next i
End Sub

जब हम इस मैक्रो को चलाते हैं, तो हमें निम्नलिखित आउटपुट प्राप्त होता है:

कॉलम बी, कॉलम ए में प्रत्येक स्ट्रिंग को केवल “इस” की पहली घटना के साथ “उस” से प्रतिस्थापित करता है।

ध्यान दें कि हमने किसी विशिष्ट स्ट्रिंग की केवल पहली घटना को प्रतिस्थापित करने के लिए गणना: = 1 का उपयोग किया था, लेकिन आप 1 को किसी भी मान से बदल सकते हैं जिसे आप किसी विशिष्ट स्ट्रिंग की पहली एन घटनाओं को प्रतिस्थापित करना चाहते हैं।

नोट : आप वीबीए रिप्लेस विधि के लिए संपूर्ण दस्तावेज़ यहां पा सकते हैं।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि वीबीए का उपयोग करके अन्य सामान्य कार्य कैसे करें:

वीबीए: एक स्ट्रिंग में वर्णों की घटनाओं की गणना कैसे करें
वीबीए: कैसे जांचें कि एक स्ट्रिंग में दूसरी स्ट्रिंग है या नहीं
वीबीए: विशिष्ट पाठ वाले कक्षों की गणना कैसे करें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *