在Excel环境中,定义名称的重度使用可以让用户享受编程的许多优点。例如,将复杂的逻辑封装成一个定义名称,然后可以在使用时,直接使用语义化的定义名称来调用。这类似于编程语言中变量的作用,可以临时存放一个对象或值,供下次使用。
定义名称有工作薄级别和工作表级别,类似于编程语言中的局部变量和全局变量。一般来说,只用局部变量就好了,不要定义过多的全局变量。在Excel的定义名称中,也应尽可能只使用工作表级别的变量。
在Excel原生的名称管理器中,可以定义一个工作表级别的定义名称。不过操作略繁琐。一般来说,我们常见的需求是把工作表单元格区域定义成一个名称,下次可语义化在公式、条件格式、数据验证有效性等地方使用。
在Excel编辑左上方的区域选择文本框中,可以选择区域,然后在其中输入一个名称,就可以定义好一个新的定义名称。
但上述方法仅限于定义工作薄名称,且只能新建,不能更新定义名称的内容(单元格区域)。
使用Excel催化剂开发的两个小功能,可以轻松完成工作薄与工作表级别的定义名称的创建及修改更新,特别是工作表级别的名称定义操作更方便了。
还有一个小亮点,一般使用原生的定义名称方式,对有合并单元格区域的引用,定义名称只会引用左上角一个单元格。
使用Excel催化剂的方式定义的,可以将整个合并单元格区域都包括在内。
这样子有什么好处呢,如果不小心删除了左上单元格,定义名称仍然可生效,相反,原生的方式定义出来的名称,就会报错了。
下图是各删除了定义名称引用的最左边一列后的效果。因为引用的单元格被删除,它没法引用到单元格,就出现#REF报错。
除了上面两个简单的选定工作表区域进行定义名称,Excel催化剂过往很早之前已经推出了比名称管理器还要好用的定义名称批量增删改查管理。
近期笔者高频使用时,也修复了一些小bug,现在使用体验更好了。同样地,可以更新定义名称时,将原生定义名称引用的合并单元格地址从左上单元格补全为整个合并单元格的区域地址。
原来的效果
更新后的效果
什么时候使用这个功能,笔者认为,有批量场景时使用最好使,批量增删改查,比原生名称管理器强大太多。
关于定义名称为何要多使用工作表级别的定义名称,以及工作薄级别与工作表级别有哪些区别,在哪些地方会有坑出现。
插件下载链接 https://www.yuque.com/cuihuajihome/document/uxi0lk