作者:小庆童鞋
来源:芒种学园(ID:lazy_info)
Hello,大家好,我是小庆,好久没来投稿了。
作为一位正在学习VBA的数据分析er,在我的日常工作中,肯定是少不了汇总数据
的。
例如汇总大家在采购的产品,差不多长这样:
大家可以发现,虽然采购的物品种类是一样的,但是每个人选择的组合并不相同。
使用「下拉菜单」没法解决,难道要一个一个录入或者Ctrl+C/V?
仔细观察,数据其实就从一组数中选多个,这不就是Excel中的「多选列表」么?
稍微对其进行改造,实现这种方式的数据录入:
强大吧,那么这个效果是如何实现的,接下来和小庆一起学习下吧~
ActiceX控件&代码处理
首先来看下两张数据表的命名:数据录入和数据源,其中数据源的格式如下:
选中「数据录入」表,点击「开发工具」选项卡,插入「ActiveX控件」中的「列表框」,如下图所示:
之所以选择ActiveX控件,是因为这个控件相比表单控件支持VBA编程+拥有更多选项,所以相对也会复杂一些。
默认创建的第1个控件会命名为「ListBox1」,可以右击「属性」查看是否正确。
接下来右击「数据录入」的标签,选择「查看代码」,打开VBA代码窗口。
将对应的VBA代码复制进去,效果如下:
由于代码比较多,在文末也提供给大家了,可以直接下载。
现在用VBA增强的多选下拉列表就制作完成了,接下来试试效果。
实现效果&继续增强
最基础的实现效果如下,也就是「录入数据」的第2列,对应「数据源」的第2列:
在「数据源」中新增一列,同样「录入数据」也会随动更新。
即「数据源」第N列对应「录入数据」的第N列,满足N>1。
一段代码,整张表都是多选列表,而且性能比下拉菜单还要好不少。
另外除此之外,我们甚至还可以更新代码,让某些被关键字「红色高亮」。
比如选中“苹果”的单元格整体高亮:
甚至部分高亮也都可以实现,作为一门图灵完备的语言,VBA能做的功能实在太多了,就是代码写着略略繁琐。
效果是不是非常棒呢,录入数据的时候再也不怕一个一个复制粘贴了。
另外这份报表的源文件,我也在公众号后台分享给大家了:
公众号后台回复【多选下拉菜单】即可获取
以上就是关于「多选下拉菜单」制作的一点点小技巧分享,希望对你有帮助呀,没时间学习也想制作出好看的图表,可以看下下方的推荐呀~