2011-11-14 9 views
5

से पत्रक का नाम जाओ मेरे पास है:नामांकित श्रेणी का नाम वस्तु

Microsoft.Office.Interop.Excel.Workbook wb; 
Microsoft.Office.Interop.Excel.Name name; 

वहाँ किसी भी तरह से है कि नामांकित श्रेणी दी कार्यपुस्तिका में पर है कार्यपत्रक नाम पाने के लिए है, यह मानते हुए मैं मिल गया है नामांकित श्रेणी का नाम वस्तु और wb पहले से ही? Range.Parent को

ws = name.RefersToRange.Parent.name; 

उत्तर

12

हाँ, जनक संपत्ति अपने रास्ते वस्तु पदानुक्रम तक काम करने के लिए उपयोग

Microsoft.Office.Interop.Excel.Worksheet ws = name.RefersToRange.Worksheet; 
string wsName = ws.Name; 

या में एक झुकाव:

string wsName = name.RefersToRange.Worksheet.Name; 

संदर्भ:
http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.name.referstorange.aspx
http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.range.worksheet.aspx
http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel._worksheet.name(v=office.15).aspx

+1

मैं एक वर्कशीट प्रकार में कास्ट करने के लिए इससे पहले कि मैं नाम संपत्ति कॉल कर सकते हैं की जरूरत है। अन्यथा, यह इरादे की तरह काम किया। – Shark

+0

नोट करें कि RefersToRange तक पहुंचने का प्रयास करने से त्रुटि 0x800A03EC त्रुटि हो जाएगी यदि नामित श्रेणी शीट का संदर्भ नहीं देती है। उदाहरण के लिए, यदि नाम "एच 2" संदर्भित करने के लिए सेटअप किया गया था, तो RefersTo संपत्ति "= # REF! $ H $ 2" वापस आ जाएगी। उन परिस्थितियों में RefersToRange विफल हो जाएगा। आपको या तो कोशिश/कैच रैपर का उपयोग करने की आवश्यकता होगी या संपत्ति की जांच करने से पहले .tartsWith ("= # REF!") के साथ RefersTo स्ट्रिंग की जांच करनी होगी। – Robert

0
wb.Names(name).RefersToRange.Parent.Name 
1

Range.Worksheet एक स्वयं का दस्तावेजीकरण विकल्प है:

+0

वह कार्यपत्रक नाम के लिए पूछ रहा है, वर्कशीट ऑब्जेक्ट नहीं। –

+0

@ लांस रॉबर्ट्स: धन्यवाद - अपडेट किया गया। –

संबंधित मुद्दे