本文重点:
-- 定义名称的快捷方式(不是快捷键)
-- 二级菜单中的BUG问题:选好了二级菜单,返回再选择一级菜单,二级菜单不会发生变化,连个提醒都没有!
先来看第一个问题:
之前在给大家介绍二级菜单的时候,是为了讲解清楚如何去构建数据源,如何去使用快捷键来进行定义名称,这里忽略了一个更快捷的方式,就是名称框。如果你需要定义的名称太多,一列一列的去操作进行定义,势必效率非常感人。
先来看看名称框在哪里?
箭头所指的位置就是名称框了,没定义名称的时候显示的是鼠标当前定位的单元格位置:
当然,如果你已经定义了名称,就是这样:
而且名称旁边的下拉箭头,你可以点一下看看,是不是可以找到其他定义的名称。如何迅速的给上图中的两列数据定义名称呢?
首先全选:
当然四川下面有两个空白的单元格,是不能入选的,所以用F5调出定位条件,选择常量,确定之后就可以了。
选择完成之后,在公式菜单栏中找到:
首行就是我们要定义的名称,直接点击确定。就这么简单,当然,这个肯定不包含首行在内了,刚才选中首行只是为了用个名字而已,通过定义名称的对话框我们就可以看到:
再来看第二个问题:之前有讲过用条件格式来解决这个问题,这里再分享一个用VB来解决的方法,不会不要紧,知道怎么搬来用,会改就行。先看效果:
只要一级菜单变了,或者说只要你动了一级菜单,哪怕你第二次还是选的同样的一级菜单,二级菜单中的内容就会被清空。
用ALT+F11打开VB编辑器,双击左侧的SHEET1,直接在空白区域输入:
代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "E1" Then
Target.Offset(1, 0) = ""
End If
End Sub
解释一个地方(你借鉴之后需要自己手动改动的地方):
E1代表的是一级菜单所在的单元格,那么Target.Offset(1,0)表示的就是以E1单元格为起点,往下移动一行,这第一个参数中1是代表往下移动一行,0代表原地不动,负数就代表往上移动多少行,第二个参数0代表的是列数,正数代表往右,0代表不动,负数代表往左。
明白了这个你就可以拿去后根据你单元格的位置进行变化了。
VB不要怕,这么多的资源,看懂一点,会改一下,拿来就是你自己的了,这个不香么?
好了,如果本文对你有帮助,请分享给有需要的朋友或你的朋友圈,让大家一起交流学习,共同进步。
领取专属 10元无门槛券
私享最新 技术干货