将CreateNames用于仅限工作表的名称vba

时间:2013-09-11 15:33:57

标签: excel excel-vba range vba

我正在使用

ActiveCell.CurrentRegion.CreateNames top:=True, left:=False    

这在命名顶部的列时很有效。我需要在工作表中将这些命名区域设为局部。有没有办法用CreateNames而不是Names.Add来做到这一点?

任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:2)

默认情况下,CreateNames创建的名称范围是“工作簿”

你的意思是这样吗?

ActiveCell.CurrentRegion.Name = ActiveSheet.Name & "!" & _
                                ActiveCell.Offset(-1).Value

逻辑是使用Activesheet的名称直接命名它,以便范围保留到相关的工作表。我也使用.Offset来补偿top:=True。你必须相应地改变它。

您也可以使用

ActiveCell.CurrentRegion.Name = ActiveSheet.Name & "!" & _
                                Range(ActiveCell.CurrentRegion.Address).Cells(1, 1).Value

我们需要了解top:=True将使用顶行中的标签创建名称。所以我假设第一个单元格有文本值。