2010-09-02 13 views
12
Dim sampleRange as Range 
Set sampleRange = Worksheet.Range(Cells(1,1),Cells(1,4) 
sampleRange.Name = "Range1" 
MsgBox sampleRange.Name 

उपर्युक्त कोड श्रेणी के वास्तविक पते को दिखाएगा, नाम नहीं। क्यूं कर?
मैं अपना नाम वापस करने के लिए नामित सीमा कैसे प्राप्त करूं?आप अपना नाम वापस करने के लिए रेंज कैसे प्राप्त करते हैं?

उत्तर

37

एक श्रृंखला के लिए, नाम, एक स्ट्रिंग यह एक नाम वस्तु नहीं है कि आप तो की स्ट्रिंग पाने के लिए नाम संपत्ति ले:

MsgBox sampleRange.Name.Name 
+1

धन्यवाद, लांस! मैंने इंटरनेट को लंबे और कड़ी मेहनत की खोज की और वह जवाब नहीं मिला। – GenericJam

+1

मेरी खोज आपके उत्तर के लिए संक्षिप्त और मुलायम धन्यवाद थी! – Nick

+0

सुरक्षित रूप से उत्तर को संपादित करने के लिए निश्चित नहीं है, लेकिन मुझे लगता है कि वीबीए 7.1 में, उत्तर लागू नहीं होता है: कृपया इसके बजाय 'MsgBox sampleRange.Names.Name' पढ़ें। – hornetbzz

0

sampleRange.Name = "सीमा 1" श्रेणी नाम के लिए खराब अभ्यास

यह केवल काम करता है क्योंकि नाम ("नाम" युक्त स्ट्रिंग) नाम की डिफ़ॉल्ट संपत्ति है।

बहुत बेहतर sampleRange.Name.Name = "सीमा 1"

यह स्पष्ट रूप से इसे का जिक्र किए बिना सामान्य प्रॉपर्टी उपयोग करने के लिए कभी नहीं अच्छी आदत है।

अच्छा प्रोग्रामिंग आवश्यक संपत्ति को स्पष्ट रूप से संदर्भित करके पर्यावरण को नियंत्रित करता है।

अस्पष्टता को हटाकर इस मुद्दे को बनाया गया है। भविष्य में अद्यतन में डिफ़ॉल्ट संपत्ति को बदल दिया गया है, तो बनाई गई समस्या को समाप्त करता है।