bcb中如何在不同窗口使用同一变量_在Excel中创建二级下拉菜单「进阶版」

上一篇我们讲到了如何在Excel中创建基础的下拉菜单,然而在很多业务场景里,需要首先选择一级菜单,再根据一级菜单的选择内容决定二级菜单有哪些选项,看到这里,你想到了哪些应用场景呢?没错,最常见的就是【省份+城市】的二级下拉菜单组合。今天的示例代码就以此构建。

最终的效果如图所示:

d66dec651a41881acfea2b01b9568a02.png

效果呈现

文章摘要- 第一步、创建二级选项列表- 第二步、分别定义列表名称- 第三步、数据关联- 思考题:如何设置N级下拉菜单

第一步、设置二级选项数据

1.1 创建一个sheet表,专门存放菜单选项:

aaa16533c71d9b7e42556d707960e6ff.png

1.2 在标签列表中,输入一级、二级菜单,使它们在同一行或同一列:

c564ee36b95f45e4f41d4227031b721b.png

此图较长,点击放大观看更清楚哦

第二步、依次设置变量名

2.1 一级菜单的变量名设置和上篇讲的一样,选中、左上角输入框设置,忘记的话可以返回上一篇查看:

2d851e8f23fff73e9acd17e942dc7540.png

此图较长,点击放大观看更清楚哦

2.2 二级菜单的变量名设置方式有些许不同,选中同一行(包含一级、二级),点选上方的【公式】选项卡,点击【根据所选内容创建】:

afedfc7936c6673023177abd88967e39.png

此图较长,点击放大观看更清楚哦


2.3 在弹出的窗口里,选择最左列。这个的含义就是将最左列的一级菜单的名称和后面的二级菜单的所有选项进行了关联,使用这种方式,防止出现一级菜单选项太多而打错字的情况。

e3f03f921cfb4beaf82ac284a79bac2d.png

第三步、在主表中进行菜单设置

3.1 返回主表,找到省市那一列的单元格,开始设置一级菜单,这还是上节课的内容:

b63c1321be846462a606f3366c88e4cf.png

弹窗选择【允许:序列】【来源:=一级菜单变量名】

f1c7d55d849ea49b55999722d01faba0.png

一级菜单设置成功:

0ef00169a6d2a9d5ff4aecea9463b472.png

3.2 找到城市那一列的单元格,开始设置二级菜单。

e496c1c1a0a6157c4d837fc5d3bbfddd.png

弹窗的选项这么设置:

06c7eb2abb44ae721939bb496002d419.png


这里注意,来源要写

=INDIRECT(INDIRECT("$一级菜单所在列的字母序号"&ROW()))

解释一下:
这是一个嵌套结构,里面涉及到了INDIRECT函数,意思就是获取某个单元格的引用值。那么我们先看里面的那一层INDIRECT函数:

INDIRECT("$一级菜单所在列的字母序号"&ROW())

字面意思是,获取“一级菜单那一列、当前单元格所在行”的那个单元格的引用值,也就是当前二级菜单的一级菜单嘛!~
好,现在拿到了那个值,假设说是“广东省”,那么外层函数就是INDIRECT("广东省"),这是什么意思呢?请注意INDIRECT函数括号里的值永远都表示单元格,因为这个函数的用法就是获取某单元格的引用值,因此,此时的“广东省”并不是三个文本字符,而是代表你刚才在第二步里设置的那一组叫“广东省”的二级菜单选项的单元格组,所以顺推引用值,就是广东省的所有二级菜单选项。

好的,推导到这里你应该已经懂了,是不是有种醍醐灌顶的赶脚?我们看一下设置好的二级菜单:

603d4a8e5322c3ee95dfcbb1f4afbaa7.png

它会根据左边一级菜单的内容而改变选项:

321ac0c417a51f73b73223d6a9237be7.png

思考题:如何设置三级菜单、四级菜单……N级菜单?

这里留一个思考题,你可以在下方留言评论,没有任何奖励,只是帮助你更深刻的理解Excel的名称管理器、数据验证,熟练掌握而已~


另外,想要设置一整列选项、隐藏sheet数据表,这些进阶技巧在上一课也都讲了,本篇就不再赘述。

总结

制作一个简单的二级下拉菜单,总共需要如下几步:
1、创建菜单选项表格;
2、分别设置一级、二级菜单选项的变量名称;
3、回到主表,设置一级菜单;

4、设置二级菜单,这里需要用到INDIRECT()函数,也可直接复制粘贴公式;
5、大功告成!

关注本头条号并回复关键词【Excel】就可以获得到现在和未来出的所有Excel自动化相关的示例文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值