यह ट्यूटोरियल आपको दिखाएगा कि वीबीए में रेंज टेक्स्ट टू कॉलम विधि का उपयोग करके टेक्स्ट की स्ट्रिंग को एक सेल में एकाधिक कॉलम में कैसे परिवर्तित किया जाए
कॉलम को टेक्स्ट
NS श्रेणी.टेक्स्ट टू कॉलम उदाहरण के लिए टेक्स्ट या सीएसवी फाइलों से आयात किए गए डेटा को साफ करने के लिए वीबीए में विधि एक शक्तिशाली उपकरण है।
निम्नलिखित कार्यपत्रक पर विचार करें।
डेटा एक्सेल में एक कॉलम में आ गया है, और उद्धरण चिह्नों द्वारा अलग किया गया है।
आप इस डेटा को कॉलम में अलग करने के लिए रेंज टेक्स्ट टू कॉलम विधि का उपयोग कर सकते हैं।
टेक्स्ट टू कॉलम सिंटेक्स
अभिव्यक्ति.टेक्स्ट टू कॉलम (गंतव्य, डाटा प्रकार, टेक्स्ट क्वालिफायर, लगातार डिलीमीटर, टैब, सेमीकोलन, अल्पविराम, स्थान, अन्य, अन्यचारी, फील्डइन्फो, दशमलव विभाजक, हजार का विभाजक, अनुगामीऋणसंख्या)
अभिव्यक्ति
यह उन कक्षों की श्रेणी है जिन्हें आप विभाजित करना चाहते हैं - जैसे: श्रेणी ("A1:A23")।
TextToColumns विधि में सभी तर्क वैकल्पिक हैं (उनके चारों ओर वर्गाकार कोष्ठक हैं)।
गंतव्य
जहां आप परिणाम डालना चाहते हैं - अक्सर आप डेटा को ओवरराइड करते हैं और उसे उसी स्थान पर विभाजित करते हैं।
डाटा प्रकार
आप जिस प्रकार के टेक्स्ट पार्सिंग का उपयोग कर रहे हैं - वह या तो हो सकता है एक्सएलसीमांकित (छोड़े जाने पर डिफ़ॉल्ट), या xlफिक्स्डविड्थ।
टेक्स्ट क्वालिफायर
यदि आपके द्वारा विभाजित किए जा रहे पाठ में प्रत्येक फ़ील्ड के चारों ओर उद्धरण चिह्न (एकल या दोहरा) हैं, तो आपको यह इंगित करने की आवश्यकता है कि क्या वे एकल या दोहरे हैं।
क्रमिक सीमांकक
यह या तो सही है या गलत और वीबीए को एक ही सीमांकक के 2 पर एक साथ विचार करने के लिए कहता है जैसे कि यह 1 सीमांकक था।
टैब
यह या तो है सत्य का झूठा, डिफ़ॉल्ट है झूठा - यह वीबीए को बताता है कि डेटा एक टैब द्वारा सीमित है।
सेमीकोलन
यह या तो हैसत्य का झूठा, डिफ़ॉल्ट है झूठा - यह वीबीए को बताता है कि डेटा अर्धविराम द्वारा सीमित है।
स्थान
यह या तो है सत्य का झूठा, डिफ़ॉल्ट है झूठा - यह वीबीए को बताता है कि डेटा एक स्पेस द्वारा सीमित है।
अन्य
यह या तो है सत्य का झूठा, डिफ़ॉल्ट है झूठा. यदि आप इसे सही पर सेट करते हैं, तो अगला तर्क, अन्यचारी निर्दिष्ट करने की आवश्यकता है।
अन्यचारी
यह वह कैरेक्टर है जिसके द्वारा टेक्स्ट को अलग किया जाता है (उदाहरण के लिए: या |)।
फील्डइन्फो
यह एक सरणी है जिसमें डेटा के प्रकार के बारे में जानकारी होती है जिसे अलग किया जा रहा है। सरणी में पहला मान डेटा में कॉलम संख्या को इंगित करता है, और दूसरा मान उस स्थिरांक को इंगित करता है जिसका उपयोग आप आवश्यक डेटा प्रकार को दर्शाने के लिए करने जा रहे हैं।
डेटा प्रकार के टेक्स्ट, संख्याओं और तिथियों के साथ 5 कॉलम का एक उदाहरण हो सकता है:
ऐरे(ऐरे(1, xlTextFormat), ऐरे(2, xlTextFormat), ऐरे(3, xlसामान्यफ़ॉर्मेट), ऐरे(4, xlसामान्यफ़ॉर्मेट), ऐरे(5, xlMDYफ़ॉर्मेट))
इसे स्थापित करने का एक और तरीका है:
Array(Array(1, 2), Array(2, 2), Array(3, 1), Array(4, 1), Array(5, 3))
दूसरे कॉलम में संख्याएं स्थिरांक के मान हैं जहां स्थिर xlTextFormat का मान 2 है, xlGeneralFormat (डिफ़ॉल्ट) का मान 1 है और xlMDYFormat का मान 3 है।
दशमलव विभाजक
यदि डेटा में संख्याएँ हैं तो आप दशमलव विभाजक निर्दिष्ट कर सकते हैं जिसका उपयोग VBA को करना चाहिए। यदि छोड़ा गया है, तो यह सिस्टम सेटिंग का उपयोग करेगा, जो आमतौर पर एक अवधि होती है।
हजार का विभाजक
यदि डेटा में संख्याएं हैं तो आप हजारों विभाजक निर्दिष्ट कर सकते हैं जिनका उपयोग वीबीए को करना चाहिए। यदि छोड़ा गया है, तो यह सिस्टम सेटिंग का उपयोग करेगा, जो आमतौर पर अल्पविराम होता है।
अनुगामीऋणसंख्या
यह तर्क बड़े पैमाने पर डेटा के लिए अनुकूलता के लिए है जो पुराने सिस्टम से उत्पन्न होता है जहां एक ऋण चिह्न अक्सर संख्या के बाद होता है और पहले नहीं। यदि ऋणात्मक संख्याओं के पीछे ऋण चिह्न है, तो आपको इसे सही पर सेट करना चाहिए। डिफॉल्ट गलत है।
टेक्स्ट को कॉलम में बदलना
निम्नलिखित प्रक्रिया ऊपर दिए गए एक्सेल डेटा को कॉलम में बदल देगी।
12345678910111213141516 | उप TextToCol1 ()रेंज ("ए 1: ए 25")। टेक्स्ट टू कॉलम _गंतव्य: = रेंज ("ए 1: ए 25"),डेटा प्रकार: = xl सीमित, _टेक्स्ट क्वालिफायर:=xlडबलक्वोट, _लगातार डिलीमीटर: = सच, _टैब: = झूठा, _अर्धविराम: = असत्य, _अल्पविराम: = झूठा,अंतरिक्ष: = सच, _अन्य: = झूठा, _FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)), _दशमलव विभाजक: = "।" , _हजारोंसेपरेटर:=",", _ट्रेलिंगमाइनस नंबर:=सचअंत उप |
उपरोक्त प्रक्रिया में हमने सभी मापदंडों को भर दिया है। हालांकि, कई पैरामीटर गलत या डिफ़ॉल्ट सेटिंग पर सेट हैं और आवश्यक नहीं हैं। उपरोक्त प्रक्रिया का एक क्लीनर संस्करण नीचे दिया गया है। हम कौन से पैरामीटर का उपयोग कर रहे हैं यह इंगित करने के लिए आपको पैरामीटर नामों का उपयोग करने की आवश्यकता है।
1234567 | उप TextToCol2 ()रेंज ("ए 1: ए 25")। टेक्स्ट टू कॉलम _डेटा प्रकार: = xl सीमित, _टेक्स्ट क्वालिफायर:=xlडबलक्वोट, _लगातार डिलीमीटर: = सच, _अंतरिक्ष: = सच,अंत उप |
केवल 4 पैरामीटर हैं जिनकी वास्तव में आवश्यकता होती है - डेटा को एक दोहरे उद्धरण द्वारा सीमांकित किया जाता है, आप चाहते हैं कि लगातार उद्धरण एक के रूप में माने जाएं और डेटा को एक स्थान से अलग किया जाए!
कोड की और भी तेज लाइन के लिए, हम पैरामीटर नामों को छोड़ सकते हैं, लेकिन फिर हमें पैरामीटर के स्थान को बचाने के लिए अल्पविराम लगाने की आवश्यकता होगी। आपको केवल उस अंतिम पैरामीटर तक जानकारी डालने की आवश्यकता है जिसका आप उपयोग कर रहे हैं - इस मामले में वह स्थान जो डेटा को अलग करता है जो कि 8 वां पैरामीटर है।
123 | उप TextToCol3 ()रेंज ("A1: A25")। TextToColumns , xlDelimited, xlDoubleQuote, True, , , Trueअंत उप |
एक बार जब आप ऊपर दी गई किसी भी प्रक्रिया को चलाते हैं, तो डेटा नीचे दिए गए ग्राफ़िक के अनुसार अलग हो जाएगा।