你怎么得到一个范围来返回它的名字?

时间:2010-09-02 19:27:13

标签: excel vba named-ranges

Dim sampleRange as Range
Set sampleRange = Worksheet.Range(Cells(1,1),Cells(1,4)
sampleRange.Name = "Range1"
MsgBox sampleRange.Name

上面的代码将显示范围的实际地址,而不是名称。为什么呢?
如何让命名范围返回其名称?

2 个答案:

答案 0 :(得分:41)

对于Range,Name不是一个字符串,它是一个Name对象,然后你可以使用Name属性来获取字符串:

MsgBox sampleRange.Name.Name

答案 1 :(得分:-1)

sampleRange.Name =" Range1"命名范围是不好的做法

它才有效,因为Name(包含" The Name"的字符串)是Name的默认属性。

更好的sampleRange.Name.Name =" Range1"

在没有明确引用默认属性的情况下使用默认属性绝不是一种好习惯。

良好的编程通过明确引用所需的属性来精确控制环境。

删除歧义,因为这里创建了问题。 如果在将来的更新中更改了默认属性,则消除了创建的问题。