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

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

4

2 回答 2

57

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

MsgBox sampleRange.Name.Name
于 2010-09-02T19:38:21.367 回答
-1

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

它之所以有效,是因为 Name(包含“The Name”的字符串)是 Name 的默认属性。

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

使用默认属性而不明确引用它从来都不是一个好习惯。

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

Removes ambiguity as created the issue here. Eliminates the issue created if the default property is changed in a future update.

于 2017-03-17T21:36:29.777 回答