在Excel中创build名称范围的dynamic更改名称

我正在寻找一种方法来在Excel中创build名称范围的dynamic更改名称。 例如:

A1 = "John" A2 = 32 A3 = "st.lo" 

现在我想要的范围名称A1:A3将是“约翰”请注意,A1的值可以改变为另一个值可以说:

 A1 = "michele" 

现在我想要范围A1:A3的名称将变成“michele”(自动)。 提前致谢

你可以在事件中使用:

 Private Sub Worksheet_Change(ByVal Target As Range) 

此代码:

 ActiveWorkbook.Names(Range("A1").CurrentRegion.Name.Name).Name = Range("A1").Value 

每当您更改单元格A1的名称,macros更改范围的名称…
我解释一下:直接从单元格“A1”的范围的名称:

 Range("A1").CurrentRegion.Name.Name 

并从范围名称的集合:

 ActiveWorkbook.Names( 

用新的值“A1”更改名称:

 ).Name 

好 ?

对于每个范围:
在你的macros里面:

 For Each xx In ActiveWorkbook.Names CellRange = Cells(Range(xx.Value).Row, Range(xx.Value).Column) xx.Name = CellRange Next 

注意不要有两个同名的单元格。 范围的名称应该是唯一的…
解释:对于工作簿中的每个RangeName,我将(第2行)第一个单元格的值赋予Range作为名称。 我更改名称后…