स्ट्रिंग चर प्रकार
स्ट्रिंग डेटा प्रकार VBA में सबसे आम डेटा प्रकारों में से एक है। यह टेक्स्ट के "स्ट्रिंग्स" को स्टोर करता है।
एक चर स्ट्रिंग चर घोषित करने के लिए, आप डिम स्टेटमेंट (आयाम के लिए छोटा) का उपयोग करते हैं:
1 | स्ट्रिंग के रूप में मंद strName |
किसी चर को मान निर्दिष्ट करने के लिए, आप बराबर चिह्न का उपयोग करते हैं:
1 | strName = "फ्रेड स्मिथ" |
इसे एक प्रक्रिया में रखना इस तरह दिखता है:
12345678 | उप strExample ()'स्ट्रिंग घोषित करें'स्ट्रिंग के रूप में मंद strName'स्ट्रिंग को पॉप्युलेट करें'strName = "फ्रेड स्मिथ"'संदेश बॉक्स दिखाएं'MsgBox strnameअंत उप |
यदि आप ऊपर दिए गए कोड को चलाते हैं, तो निम्न संदेश बॉक्स दिखाया जाएगा।
फिक्स्ड स्ट्रिंग वेरिएबल
वास्तव में 2 प्रकार के स्ट्रिंग वेरिएबल हैं - फिक्स्ड और वेरिएबल।
"वेरिएबल" स्ट्रिंग वैरिएबल (पिछले उदाहरण में दिखाया गया है) आपकी स्ट्रिंग को किसी भी लम्बाई की अनुमति देता है। यह सबसे आम है।
"निश्चित" स्ट्रिंग चर स्ट्रिंग के आकार को परिभाषित करता है। एक निश्चित स्ट्रिंग में 65,400 वर्ण तक हो सकते हैं।
1 | स्ट्रिंग के रूप में मंद strName *20 |
जब आप एक निश्चित चर को परिभाषित करते हैं, तो चर में वर्णों की संख्या लॉक हो जाती है, भले ही आप कम वर्णों का उपयोग करते हों।
नीचे दिए गए ग्राफ़िक में रिक्त स्थान पर ध्यान दें - चर में स्ट्रिंग में शेष वर्णों के लिए प्लेसहोल्डर हैं क्योंकि 'फ्रेड स्मिथ' 20 वर्णों से कम है।
हालाँकि, यदि आपने लंबाई निर्दिष्ट किए बिना एक स्ट्रिंग घोषित की है, तो स्ट्रिंग में केवल उतने ही वर्ण होंगे जितने इसे पास किए गए हैं।
मॉड्यूल या वैश्विक स्तर पर स्ट्रिंग चर घोषित करें
पिछले उदाहरण में, आपने एक प्रक्रिया के भीतर स्ट्रिंग चर घोषित किया था। एक प्रक्रिया के साथ घोषित चर का उपयोग केवल उस प्रक्रिया के भीतर ही किया जा सकता है।
इसके बजाय, आप मॉड्यूल या वैश्विक स्तर पर स्ट्रिंग चर घोषित कर सकते हैं।
मॉड्यूल स्तर
मॉड्यूल स्तर कोड मॉड्यूल के शीर्ष पर चर घोषित किए जाते हैं धुंधला बयान।
इन चरों का उपयोग उस कोड मॉड्यूल में किसी भी प्रक्रिया के साथ किया जा सकता है।
वैश्विक स्तर
वैश्विक स्तर कोड मॉड्यूल के शीर्ष पर चर भी घोषित किए जाते हैं। हालांकि, का उपयोग करने के बजाय धुंधला कथन, आप उपयोग करते हैं सह लोक यह इंगित करने के लिए कथन कि स्ट्रिंग वेरिएबल आपके पूरे VBA प्रोजेक्ट में उपयोग के लिए उपलब्ध है।
1 | सार्वजनिक strName स्ट्रिंग के रूप में |
यदि आपने एक मॉड्यूल स्तर पर स्ट्रिंग चर घोषित किया है और एक अलग मॉड्यूल में उपयोग किया है, तो एक त्रुटि होगी।
हालाँकि, यदि आप स्ट्रिंग चर घोषित करने के लिए सार्वजनिक कीवर्ड का उपयोग करते हैं, तो त्रुटि नहीं होगी और प्रक्रिया पूरी तरह से चलेगी।
स्ट्रिंग के रूप में संग्रहीत मान कनवर्ट करें
एक समय हो सकता है जब आपके पास एक्सेल में टेक्स्ट के रूप में संग्रहीत मूल्य होते हैं - उदाहरण के लिए, हो सकता है कि आपने एक सीएसवी फ़ाइल आयात की हो जो संख्याओं के बजाय टेक्स्ट में लाई हो।
ध्यान दें कि A1 में मान बाईं ओर संरेखित है, जो टेक्स्ट मान को दर्शाता है।
आप एक का उपयोग कर सकते हैं वीबीए समारोह इन नंबरों को टेक्स्ट में बदलने के लिए इस्तेमाल किया जा सकता है
12345678 | उप कन्वर्टवैल्यू ()'स्ट्रिंग को पॉप्युलेट करें'strQty = रेंज ("ए 1")'स्ट्रिंग के साथ डबल पॉप्युलेट करें'dblQty = strQty'संख्या के साथ सीमा को पॉप्युलेट करें'रेंज ("A1") = dblQtyअंत उप |
एक बार जब आप कोड चलाते हैं, तो संख्या दाईं ओर चली जाएगी-यह दर्शाता है कि यह अब एक संख्या के रूप में संग्रहीत है।
यह विशेष रूप से तब उपयोगी होता है जब आप कोशिकाओं की एक बड़ी श्रृंखला के माध्यम से लूप करते हैं।
123456789101112131415 | उप कन्वर्टवैल्यू ()स्ट्रिंग के रूप में मंद strQty, डबल के रूप में dblQtyडिम rw as Integer, i as Integer'रूपांतरित करने के लिए पंक्तियों की गणना करेंआरडब्ल्यू = रेंज ("ए 1", रेंज ("ए 1")। एंड (एक्सएलडाउन))। पंक्तियां। गणना'कोशिकाओं के माध्यम से लूप करें और प्रत्येक को एक संख्या में परिवर्तित करें'i = 0 से rw - 1 . के लिए'स्ट्रिंग को पॉप्युलेट करें'strQty = रेंज ("ए 1")। ऑफसेट (i, 0)'स्ट्रिंग के साथ डबल पॉप्युलेट करें'dblQty = strQty'संख्या के साथ सीमा को पॉप्युलेट करें'रेंज ("A1")। ऑफसेट (i, 0) = dblQtyअगला मैंअंत उप |
इसका परिणाम यह होगा कि सभी कक्ष तब संख्याओं में परिवर्तित हो जाते हैं
VBA कोड उदाहरण खोज कर थक गए हैं? ऑटोमैक्रो का प्रयास करें!
कनवर्ट स्ट्रिंग को मानों के रूप में संग्रहीत किया जाता है
इसी तरह, ऐसे मान भी हो सकते हैं जिन्हें आपको एक स्ट्रिंग से एक मान में बदलने की आवश्यकता होती है - उदाहरण के लिए, यदि आपको किसी टेलीफ़ोन नंबर पर एक अग्रणी शून्य की आवश्यकता होती है।
123456789101112131415 | उप कन्वर्टस्ट्रिंग ()स्ट्रिंग के रूप में मंद strPhone, डबल के रूप में dblPhoneडिम rw as Integer, i as Integer'रूपांतरित करने के लिए पंक्तियों की गणना करेंआरडब्ल्यू = रेंज ("ए 1", रेंज ("ए 1")। एंड (एक्सएलडाउन))। पंक्तियां। गणना'कोशिकाओं के माध्यम से लूप करें और प्रत्येक को एक संख्या में परिवर्तित करें'i = 0 से rw - 1 . के लिए'स्ट्रिंग को पॉप्युलेट करें'dblPhone = रेंज ("A1")। ऑफसेट (i, 0)'स्ट्रिंग के साथ डबल पॉप्युलेट करें'स्ट्रफ़ोन = "'0" और डीबीएलफ़ोन'संख्या के साथ सीमा को पॉप्युलेट करें'रेंज ("ए 1")। ऑफसेट (i, 0) = स्ट्रॉफ़ोनअगला मैंअंत उप |
ध्यान दें कि एक्सेल को स्ट्रिंग के रूप में मान दर्ज करने के लिए कहने के लिए आपको शून्य से पहले टेक्स्ट स्ट्रिंग को एस्ट्रोफ़े (') से शुरू करना होगा।