什么是Excel的命名区域?
Excel中的命名区域,指的是给某个单元格或者已选定的多个单元格区域,取一个名字。换句话说就是,给选中的单元格(或者多个选中的单元格)取一个名字。
为什么要给单元格取名称呢?,当然,都是为了方便使用、引用,这在数据处理过程中,会相当的方便。
一、命名单元格或区域的简单方法
要想给选中的单元格命名一个区域名称,方法非常简单,先看下图!
上图中,是我们平时选择多个单元格所看到的效果,如,选择A1:C7范围,我们会在A1的上面看到一个输入框,框中的内容是“A1”,如上图红线圈住的那部分。
要对A1:C7进行区域命名,这个时候,就如下图一样。
在输入框那个地方,把原来的A1删除,然后,输入一个名称即可,如本例的abc。最后按下回车键,这样,A1:C7这个区域,就有一个统一的名称“abc”了。
二、使用VBA来命名区域
① 创建全局命名区域
ActiveWorkbook.Names.Add Name:="MyName", RefersToR1C1:="=Sheet1!R2C2:R6C4"
ActiveWorkbook.Names.Add Name:="MyName", RefersTo:="=Sheet1!$B$2:$D$6"
代码将当前工作簿中工作表Sheet1的单元格区域B2:D6命名为MyName,该名称为全局名称。
②创建局部命名区域
在名称前加上工作表名,将创建局部名称,例如:
ActiveWorkbook.Names.Add Name:="Sheet1!MyName1", RefersTo:="=Sheet1!$B$2:$D$6"上面的代码在工作表Sheet1中将单元格区域B2:D6命名为MyName1,该名称为局部名称。
也可以通过引用指定的工作表创建局部名称,例如:
Worksheets("sheet2").Names.Add Name:="MyName2", RefersTo:="=Sheet2!$A$1:$B$3"上面的代码在工作表Sheet2中创建一个局部名称MyName2,代表Sheet2中的单元格区域A1:B3。
③ 简单的命名方法
Worksheets("Sheet1").Range("B8:C10").Name = "MyName3":将工作表Sheet1中的单元格区域B8:C10命名为MyName3,该名称为全局名称。
Worksheets("Sheet2").Range("H15:G16").Name = "Sheet2!MyName4":将工作表Sheet2中的单元格区域H15:G16命名为MyName4,该名称为局部名称。
注意,这种方法只能应用于命名单元格区域,不能够用来命名公式、数字等。
④把其它表的单元格区域命名为当前工作表的区域
Worksheets("Sheet1").Range("E6:F8").Name = "Sheet2!MyName5"或者:Worksheets("sheet2").Names.Add Name:="MyName5", RefersTo:="=Sheet1!$E$6:$F$8"上面的代码在工作表Sheet2中命名工作表Sheet1中单元格区域E6:F8为MyName5,该名称为Sheet2中的局部名称。
⑤命名数组
Dim MyArray(10)
Dim i As Integer
For i = 1 To 10
MyArray(i) = i
Next i
Names.Add Name:="NameArray", RefersTo:=MyArray上述代码先对数组赋值,然后指定名称。
⑥命名公式
Names.Add Name:="NameFormlas", RefersTo:="=OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),1)"上面的代码命名了一个公式,可以用来创建动态表格或引用动态的区域。
使用上面的方法命名数字、字符串、数组或公式,在名称中存储经常要使用的值,比将该值存放在单元格中更有优势,它可以避免该值被易外修改并减少了对象的引用。
三、对命名区域的操作
①重命名已有的名称
Worksheets("Sheet2").Names("MyName5").Name = "MyName6"上面的代码将工作表Sheet2中的局部名称MyName5改名为MyName6。但这种方法只能在单元格或单元格区域中进行重命名使用,而不能重命名代表公式、数组和字符串的名称。
②改变所选区域所命名的名称的引用区域
Worksheets("Sheet1").Names.Add Selection.Name.Name,Sheet1.Range("B3:C4")上面的代码将原来所选区域的名称的引用区域改为单元格区域B3:C4,即该名称所代表的区域已变为B3:C4,原来命名区域名称被取消。
③提取命名区域
使用eva luate方法,例如:
eva luate("MyName").Interior.ColorIndex = 3:将工作表中名称MyName所代表的单元格区域的背景设置为红色。
④隐藏名称
Names.Add Name:="HideName", RefersTo:="=$A$1:$C$3", Visible:=False将隐藏所创建的名称。注意,如果以后创建的名称与所隐藏的名称相同,则被隐藏的名称将被覆盖。
⑤删除命名区域的名称
Names("MyName3").Delete上面的代码删除当前工作簿中的名称MyName3。
注意,当前工作簿中重命名已有名称和删除名称时,要注意所要操作的名称是全局名称还是局部名称。如果为局部名称,则必须在代码中加上该名称所在工作表的引用。
命名名称注意事项:名称的最大长度为255个字符。
名称可以字母、空格或下划线开头。
名称中不能包含空格、连字线等字符。
避免命名与单元格引用相同的名称,如A1、G11等。
避免在名称中使用Excel的保留字,如:Criteria、Database、Extract、Print_Area、Print_Titles等。