प्रकार चर प्रकार
एक वेरिएंट वैरिएबल डेटा के किसी भी समय (स्ट्रिंग, पूर्णांक, दशमलव, ऑब्जेक्ट, आदि) को पकड़ सकता है। यदि आप एक चर प्रकार घोषित नहीं करते हैं, तो आपके चर को भिन्न माना जाएगा।
वैरिएंट वैरिएबल घोषित करने के लिए, आप डिम स्टेटमेंट (आयाम के लिए छोटा) का उपयोग करते हैं:
1 | Dim varName as variant |
1 | संस्करण के रूप में मंद rng |
फिर, एक चर के लिए एक मान निर्दिष्ट करने के लिए, बस बराबर चिह्न का उपयोग करें:
1 | varName = "जॉन" |
1 | आरएनजी = शीट्स (1)। रेंज ("ए 1") |
इसे एक प्रक्रिया में रखना इस तरह दिखता है:
12345678910 | उप strExample ()'वेरिएंट घोषित करें'डिम स्ट्रनाम वैरिएंट के रूप मेंसंस्करण के रूप में मंद रंग'चरों को आबाद करें'strName = "फ्रेड स्मिथ"सेट आरएनजी = शीट्स (1)। रेंज ("ए 1")'शीट को पॉप्युलेट करें'rng.Value = strNameअंत उप |
यदि आप ऊपर दिए गए कोड को चलाते हैं, तो शीट 1 में सेल A1 "फ्रेड स्मिथ" से भर जाएगा
ऊपर घोषित नामों से, हम यह निष्कर्ष निकाल सकते हैं कि वरनाम पाठ होगा, और ओब्जशीट एक वर्कशीट ऑब्जेक्ट होगा। लेकिन वास्तव में, किसी भी प्रकार के डेटा को वेरिएबल की ओर निर्देशित किया जा सकता है।
आप ऊपर घोषित चरों को निम्नानुसार पॉप्युलेट कर सकते हैं और कोई त्रुटि नहीं होगी।
1 | वरनाम = ६ |
1 | objSheet - "फ्रेड" |
भिन्न चर का उपयोग करना असामान्य है और इसे अच्छा अभ्यास नहीं माना जाता है। हालांकि, अवसरों पर भिन्न चर उपयोगी होते हैं।
मॉड्यूल या वैश्विक स्तर पर वैरिएंट वैरिएबल घोषित करें
पिछले उदाहरण में, आपने एक प्रक्रिया के भीतर भिन्न चर घोषित किया था। एक प्रक्रिया के साथ घोषित चर का उपयोग केवल उस प्रक्रिया के भीतर ही किया जा सकता है।
इसके बजाय, आप मॉड्यूल या वैश्विक स्तर पर भिन्न चर घोषित कर सकते हैं।
मॉड्यूल स्तर
मॉड्यूल स्तर कोड मॉड्यूल के शीर्ष पर चर घोषित किए जाते हैं धुंधला बयान।
इन चरों का उपयोग उस कोड मॉड्यूल में किसी भी प्रक्रिया के साथ किया जा सकता है।
वैश्विक स्तर
वैश्विक स्तर कोड मॉड्यूल के शीर्ष पर चर भी घोषित किए जाते हैं। हालांकि, का उपयोग करने के बजाय धुंधला कथन, आप उपयोग करते हैं सह लोक यह इंगित करने के लिए कथन कि स्ट्रिंग वेरिएबल आपके पूरे VBA प्रोजेक्ट में उपयोग के लिए उपलब्ध है।
1 | सार्वजनिक strName as variant |
यदि आपने मॉड्यूल स्तर पर भिन्न चर घोषित किया है और किसी भिन्न मॉड्यूल में उपयोग किया है, तो एक त्रुटि उत्पन्न होगी।
यदि आपने भिन्न चर घोषित करने के लिए सार्वजनिक कीवर्ड का उपयोग किया था, तो त्रुटि नहीं होगी और प्रक्रिया पूरी तरह से चलेगी।
एक्सेल को पॉप्युलेट करने के लिए वैरिएंट का उपयोग करना
निम्नलिखित प्रक्रिया पर विचार करें:
12345678910111213141516171819 | उप परीक्षण चर'उत्पाद का नाम रखने के लिए एक स्ट्रिंग घोषित करें'मंद strउत्पाद स्ट्रिंग के रूप में'उत्पाद मात्रा रखने के लिए एक पूर्णांक घोषित करें'मंद iQty पूर्णांक के रूप में'उत्पाद की कीमत, और कुल कीमत रखने के लिए डबल्स घोषित करें'मंद dblकीमत डबल के रूप मेंमंद dblकुल डबल के रूप में'चरों को आबाद करें'strProduct = "ऑल पर्पस आटा"आईक्यूटी = 3dblPrice = "$5.00"dblTotal = "$15.00"'एक्सेल शीट को पॉप्युलेट करें'रेंज ("A1") = strProductरेंज ("A2") = iQtyरेंज ("A3") = dblPriceरेंज ("A4") = dblTotalअंत उप |
जब हम इस कोड को चलाते हैं, तो निम्न त्रुटि होती है।
डीबग पर क्लिक करें
आप वेरिएबल में डॉलर का चिह्न नहीं डाल सकते क्योंकि वेरिएबल को a . के रूप में घोषित किया गया है दोहरा, और इसलिए स्ट्रिंग मानों को संग्रहीत नहीं कर सकता।
प्रचार डीबीएल मूल्य तथा डीबीएलकुल वेरिएंट के रूप में जिसका अर्थ है कि आप डेटा प्रकार तक ही सीमित नहीं हैं।
1 | Dim dblPrice as Variant |
1 | Dim dblकुल वैरिएंट के रूप में |
कोड को फिर से चलाएँ और डेटा एक्सेल शीट में वैसा ही दिखाई देगा जैसा उसे होना चाहिए।
ध्यान दें कि A4 और A5 में दर्ज किया गया डेटा स्वचालित रूप से एक्सेल द्वारा संख्याओं में परिवर्तित हो जाता है।
एक गतिशील सरणी घोषित करना
जब आप एक गतिशील सरणी घोषित कर रहे हों तो भिन्न चर भी उपयोगी होते हैं क्योंकि वे रन-टाइम के दौरान सरणी के आकार को बदलने की अनुमति देते हैं।
के साथवेरिएंट ऐरे, आपको सरणी आकार को परिभाषित करने की आवश्यकता नहीं है। आकार स्वचालित रूप से समायोजित हो जाएगा।
123456789 | उप संस्करणअरे ()मंद गिरफ्तारी सूची () प्रकार के रूप में'मूल्यों को परिभाषित करें'arrList= ऐरे(1, 2, 3, 4)'मूल्यों में बदलाव करेंगिरफ्तारी सूची = सरणी(1,2,3,4,5,6)'आउटपुट स्थिति 4'MsgBox arrVar(4)अंत उप |