数据分析E品堂——excel,俱为一品上班这点事儿

Excel也能做出这么智能下拉菜单,不敢相信

2017-03-06  本文已影响70人  青哥聊供应链

微信公众号(“大爱E人”)回复“清除”,免费下载附件。

级联菜单,很多人可能陌生,但是关注我公众号的人肯定了解。级联菜单就是仿造电商网站,填物流地址时候,选中省,选市的时候只会呈现该省的所有市。但是,我们遇到了新需求,肿么办?    ——eric

背景

接到一位网友问题。

该网友可能是医院工作,看了我之前在优酷视频,学习了怎么做智联菜单。

(不会智联菜单的,请看我的公众号“免费-历史文章”,我就不鄙视了)。

他希望:“重选了前一下拉菜单时候,后一单元格已选内容自动清除”

我之前在优酷中的视频没有讲怎么处理这种问题,当然,在视频里也不可能讲很多。

这个问题其实是一个需求,而且是一个有一定共性的合理需求。

譬如学校排课的时候,选中英语课,但是老师可能有很多,到底是彭老师、还是施老师、李老师,不能出错;同样文员排上班或者值班表、财务分析利润中心或者成本中心,也错不得。

如果错了,都是一错误终身的风陵渡口。

这么合理且实用的需求,解决方案很简单,详见如下。

方案

下拉列表、智联菜单不会的童鞋,请点击公众号中的“免费-历史文章”。

1. 做一个入住信息登记表

2.D列做下拉列表菜单

在D列做一个下拉列表,“数据”-“数据验证”/“数据有效性”。

命名title,数据源选择B7:B9。

做下拉列表,很简单。

下拉列表是excel的基础操作,不会的童鞋请翻我的历史记录或者加技术QQ群(281606780)提问。

3.E列做级联菜单

学会做传统下拉菜单,在下拉菜单的基础上,E列新建一个下拉菜单。

如把E2单元格把来源改为“=INDIRECT($D2)”。

这样就形成E列单元格下拉菜单数据来源为D列相应单元格选中的结果。

如上,做好一个具备级联菜单功能的表格。

再加上自动删除后续单元格功能即可。

4.D列重选E列自动清空

VBA输入如下代码:


Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 4 Then

'Target.Offset(0, 1).Validation.Delete

Target.Offset(0, 1).ClearContents

End If

End Sub


其中D列为第4列,所以代码中的column=4,如果是第5列重选,后一单元格自动清空,=5即可。

VBA不好或者不想学的童鞋,会改就行。

记住:

“=4”中的4修改为,你想改变单元格内容后触发后续单元格自动清空的单元格所在列。

效果如下:

后记

VBA这么伤脑的东西,不愿操心也行,会改能为我所用即可。

这么好的东西,全部上传分享到篇头的某度某盘中。

毕竟某度没给我广告费,我就不提名字了

不要爱我、感激我,只要转发、关注公众号就行。

“大爱E人”
上一篇 下一篇

猜你喜欢

热点阅读