excelperfect
在Excel工作表中,常用的预定义名称包括:
1.命名常量
2.命名单元格区域
3.命名公式
命名常量
可以给一个常量值定义名称,如下图1所示,定义常量VersionNum表示数字1.0。
图1
这样,就可以在工作表中或VBA中使用这个命名常量。要修改时,也只需在编辑名称对话框中对其进行修改即可。
在VBA中,命名常量的用途:
1.标识工作表。可以使用命名常量来指定不同分类的工作表,例如数据输入工作表、数据分析工作表、报表工作表等,便于程序代码判断并作出相应的操作响应。
2.标识工作簿。在每个工作簿中定义一个唯一的命名常量,用来标识工作簿所在的程序。程序可以通过命名常量来判断其是否属于当前工作簿。
3.标识程序版本。通过命名常量,判断某工作簿属于哪个版本的程序,便于在程序升级时进行相应的处理。
命名单元格区域
可以使用一个具有意义的名称来代表某单元格区域。例如下图2所示,定义名称“MyData”代表单元格区域A1:C5。
图2
这样,我们可以使用MyData来引用单元格区域A1:C5,不仅可以在工作表中引用,还可以在VBA中引用。
与绝对地址和相对地址一样,命名区域也有绝对命名区域和相对命名区域。
1.绝对命名区域,定义的名称代表工作表中固定的单元格区域,如上图2所示。
2.相对命名区域,定义的名称代表的单元格区域与定义名称时的单元格位置有关。例如下图3所示,工作表当前单元格为A6,在定义名称时引用的单元格为A5,即为当前单元格正上方的单元格。
图3
因此,名称“AboveCell”将引用当前单元格正上方的单元格。例如,在单元格D3中输入公式:
=AboveCell
将得到其正上方单元格D2的值,如下图4所示。
图4
上面的例子展示的是完全相对引用。也可以在定义名称时使用混合相对引用,即相对列引用,表示引用的列会随着单元格位置的变化而变化,而引用的行不变;相对行引用,即引用的行会随着单元格位置的变化而变化,而引用的列不变。例如$A1就是一个相对行引用,列A不会改变,但行会随着单元格的位置而改变。例如下图5所示,定义名称时当前单元格为D1,定义名称“SameRow”为引用单元格所在行列A中的单元格。
图5
此时,在列A以外的任意单元格中输入:=SameRow,都将返回相对应同一行的列A中单元格的值,如下图6所示。
图6
可以继续探索,例如,在定义名称时,单元格区域的起始地址为绝对引用,结束地址为相对引用,那就代表定义的区域为绝对引用地址所在的单元格至当前单元格的区域,不信你可以试一试!
灵活使用相对命名区域,可以巧妙地解决动态数据引用的问题。
命名公式
可以对那些复杂且频繁使用的公式进行命名,更方便使用和维护。
此外,命名公式还可创建动态表。例如下图7所示的工作表,使用了命名公式来创建动态表,公式中包括OFFSET函数和COUNT函数的公式,当列表中的项目增加或减少时,动态更新命名公式代表的区域。这实际上创建了一个可扩展的单元格区域。
图7
在实际使用中,常使用动态命名公式为数据有效性列表提供列表项,这样在增加或减少数据项时,只需在创建公式的工作表中进行数据输入或删除操作,而无需更改数据有效性设置。