एक्सेल Range
वस्तु में, डिफ़ॉल्ट member
Value
है तो SomeVariable = Range("A1")
में ही है के रूप में SomeVariable = Range("A1").Value
इसी Range("A1") = SomeVariable
ही Range("A1").Value = SomeVariable
रूप
आप निश्चित रूप से करने के लिए है जब आप कहते हैं a = Range("Test")
सावधान रहना है
जब आप किसी भिन्न श्रेणी से वैरिएंट वैरिएबल में मान को स्टोर करने का प्रयास करते हैं उदाहरण के लिए Test
रेंज रेफ़ रु कहने के लिए, A1:A10
, तो आप मान की एक सरणी मिल जाएगा
Sub Sample()
Dim Myar
Myar = Range("A1:A10").Value
Debug.Print UBound(Myar)
End Sub
इस मामले
Myar = Range("A1:A10").Value
में
फिर के रूप में Myar = Range("A1:A10")
एक ही है, तो मैं पढ़ रहा हूँ/एक श्रृंखला के लिए लेखन, जब करना मैं सिर्फ श्रेणी का नाम उपयोग करता हूं और मुझे range.value का उपयोग करने की आवश्यकता कब होती है?
मुझे यकीन है कि आप when do I just use the range name
से क्या मतलब है नहीं कर रहा हूँ, लेकिन यह कोई फर्क नहीं पड़ता अगर आप .Value
या नहीं का उपयोग करते हैं आप पढ़ रहे हैं/एक श्रृंखला के लिए/से लेखन। आईएमएचओ, .Value
का उपयोग करने के लिए यह एक अच्छा अभ्यास है :)
क्या इससे कोई फर्क पड़ता है कि सीमा एक सेल या एकाधिक कोशिका है?
यदि आप .Value
का उपयोग करते हैं या नहीं, तो इस मामले में इससे कोई फर्क नहीं पड़ता।
क्या इससे कोई फर्क पड़ता है कि चर का प्रकार क्या है?
ओह हाँ!
या श्रेणी में डेटा के प्रकार से ऊपर सरणी उदाहरण देखें?
एक्सेल सेल विभिन्न प्रकार के डेटा स्टोर कर सकते हैं। संख्याओं से तारीखों तक तारों तक। चूंकि आप नहीं जानते कि वह प्रकार क्या हो सकता है, यह अनुशंसा की जाती है कि उनके साथ काम करते समय Variant
का उपयोग करें।
: यहाँ एक उत्कृष्ट उदाहरण है
मान लीजिए कि सेल A1
इस संख्या 123456789
अब है इस कोड
Sub Sample()
Dim someVariable As Integer
someVariable = Range("A1").Value
Debug.Print someVariable
End Sub
और अब यह एक
Sub Sample()
Dim someVariable As Variant
someVariable = Range("A1").Value
Debug.Print someVariable
End Sub
संपादित की कोशिश की कोशिश करते हैं
टिम विलियम्स ने उल्लेख किया
का उपयोग .Value भी करने के लिए समस्या "असंतुष्ट ambiguate" आम "जब एक वस्तु चर बताए सेट का उपयोग करने भूल गया" उपयोगी है - मंद एक: सेट एक = रेंज ("A1") बनाम मंद: ए = रेंज ("ए 1") दूसरे मामले में हमेशा उपयोग करते हैं। वैल्यू वास्तविक समस्या को स्पष्ट करता है -
अच्छा एक सिद्धार्थ। मैं स्पष्ट रूप से 'वाल्यू' निर्दिष्ट करना पसंद करता हूं क्योंकि यह शुरुआती कोड को पढ़ने में मदद करता है और पुराने नगेट '। वैल्यू 2' के साथ अंतर करने में मदद करता है (यहां देखें रघु http://stackoverflow.com/questions/17359835/what-is-the-difference -बेटवीन-टेक्स्ट-वैल्यू-एंड-वैल्यू 2) – CuberChase
ग्रेट स्टफ सिद्धार्थ :) उपरोक्त पूरक के लिए, यदि आप सिद्धार्थ की तुलना में मेरे जैसे हैं, तो .value जैसे योग्यता का उपयोग करके, कड़ाई से जरूरी नहीं होने पर भी आपको मदद मिलेगी जब आप टाइप-मिस्चैच त्रुटियां प्राप्त करते हैं तो आप किस डेटा को पकड़ने और समस्या निवारण के लिए ट्रैक करते हैं इसका ट्रैक करें। मैं वही कारण के लिए वेरिएंट के उपयोग से बचना पसंद करता हूं (और कम स्मृति का उपयोग करने के बेहद मामूली लाभ के लिए)। जाहिर है कि यदि आप समय-समय पर इन त्रुटियों को बनाते हैं तो मैं कहूंगा कि सिद्धार्थ की सलाह जाने का तरीका है। – puzzlepiece87
'। वैल्यू' का उपयोग करना आम है "ऑब्जेक्ट वैरिएबल असाइन करते समय सेट का उपयोग करना भूल गया" सामान्य - "मंद करें: एक = रेंज सेट करें (" ए 1 ") 'बनाम' मंद: ए = रेंज ("ए 1") 'दूसरे मामले में हमेशा'। वैल्यू 'का उपयोग वास्तविक समस्या को स्पष्ट करता है –