वीबीए: एक स्ट्रिंग को एक सरणी में कैसे विभाजित करें (उदाहरण के साथ)


आप VBA का उपयोग करके एक स्ट्रिंग को एक सरणी में विभाजित करने के लिए निम्नलिखित मूल सिंटैक्स का उपयोग कर सकते हैं:

 SubSplitString ()

    Dim SingleValue() As String
    Dim i As Integer
    Dim j As Integer

    For i = 2 To 7
    
    SingleValue = Split(Range(" A " & i), " ")
    
       For j = 1 To 2
           Cells(i, j + 1).Value = SingleValue(j - 1)
       Next j
       
    Next i
    
End Sub

यह विशेष उदाहरण प्रत्येक स्ट्रिंग में रिक्त स्थान के आधार पर प्रत्येक स्ट्रिंग को श्रेणी A2:A7 में विभाजित करता है, फिर प्रत्येक स्ट्रिंग के परिणामी तत्वों को सेल श्रेणी B2:B7 और C2:C7 में निर्दिष्ट करता है।

निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस वाक्यविन्यास का उपयोग कैसे करें।

उदाहरण: एक स्ट्रिंग को एक ऐरे में विभाजित करने के लिए वीबीए का उपयोग करना

मान लीजिए कि हमारे पास एक्सेल में स्ट्रिंग्स की निम्नलिखित सूची है:

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

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

 SubSplitString ()

    Dim SplitValues() As String
    Dim i As Integer
    Dim j As Integer

    For i = 2 To 7
    
    SplitValues = Split(Range(" A " & i), " ")
    
       For j = 1 To 2
           Cells(i, j + 1).Value = SplitValues(j - 1)
       Next j
       
    Next i
    
End Sub

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

VBA ने स्ट्रिंग को सरणी में विभाजित किया

ध्यान दें कि कॉलम बी और सी में कॉलम ए में प्रत्येक पूर्ण नाम का पहला और अंतिम नाम होता है।

यह भी ध्यान दें कि आप किसी भिन्न सीमांकक के आधार पर किसी सरणी को विभाजित करने के लिए VBA स्प्लिट फ़ंक्शन का उपयोग कर सकते हैं।

उदाहरण के लिए, मान लें कि हमारे पास निम्नलिखित ईमेल सूची है:

मान लीजिए कि हम प्रत्येक ईमेल को @ प्रतीक के प्रकट होने के आधार पर एक सरणी में विभाजित करना चाहते हैं।

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

 SubSplitString ()

    Dim SplitValues() As String
    Dim i As Integer
    Dim j As Integer

    For i = 2 To 7
    
    SplitValues = Split(Range(" A " & i), " @ ")
    
       For j = 1 To 2
           Cells(i, j + 1).Value = SplitValues(j - 1)
       Next j
       
    Next i
    
End Sub

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

स्प्लिट फ़ंक्शन प्रत्येक ईमेल को @ प्रतीक के आधार पर कॉलम ए में विभाजित करता है और परिणामी आइटम को कॉलम बी और सी में प्रदर्शित करता है।

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

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

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

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

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

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