【玩转数据有效性】用VBA制作多级关联下拉列表

数据有效性可以产生下拉列表,那么是否可以产生相互关联的多级下拉列表呢?

类似如下效果:

答案是完全可以的。

数据有效性配合函数也可做出这种效果,这篇文章只讲解用VBA的方式实现相互关联的多级下拉列表。


看一下数据源:

假如我们手里的数据源是这样的。


解决思路:

因为省份和城市都存在重复字段,我们需要去重复再设置数据有效性。

『用字典对象获取省份名称去重复作为数据有效性序列的来源,完成一级下拉列表;同样,利用字典将市名去重复后作为二级下拉列表;三级下拉列表同样的办法。』

因为要实现联动的效果,所以我们要结合工作表事件Worksheet_SelectionChange来完成。

代码及知识点:

就不拿代码凑字数了,附件公众号后台回复“有效性”获取。


几个小知识点

•Join函数

语法:Join(List[,delimiter])

参数说明:

List -必需的参数,包含被连接子字符串的一维数组。注意是一维数组。

Delimiter -一个可选参数,在返回字符串中用于分隔子字符串的字符。如果忽略该项,则使用空格(" ")来分隔子字符串。

通俗来讲,Join函数就是把一维数组每个元素通过某个设定的字符串连接起来成为一个字符串。和它作用相反的函数是split函数。


•Offset函数

代码中多次用到offset函数,主要就是因为是对B列省份数据做的循环,需要用Offset函数来获取同一行市名和县名数据。

语法:Range.Offset(行偏移数,列偏移数)

参数说明:

行偏移  -  正数,负数,零值(或者不写),正代表向下偏移,负数向上。

列偏移  -  正数,负数,零值(或者不写),正代表向右偏移,负数向左。

注意:偏移的只是位置,单元格或者单元格区域内容不会跟着移动。


•设置数据有效性部分代码

录制宏得到,这么难的代码谁记得住,用到时候录制一下即可。

- END -


推荐阅读:

你的小黄鸭来了~  |  操作Txt  |  VBA学习经验  |  合并拆分  |   字符串函数  | 循环知识

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,306评论 0 10
  • 闭包 什么叫闭包?闭包的定义其实很简单:函数 A 内部有一个函数 B,函数 B 可以访问到函数 A 中的变量,那么...
    天空之城_2692阅读 1,526评论 0 1
  • 这几天老妈、邱思源相继不舒服,老妈支气管炎,差点怀疑肺炎,邱思源由上呼吸道感染到疱疹性咽峡炎,4号晚上持续高烧(3...
    Choice_f344阅读 1,405评论 0 0
  • (1) 签约领英自媒体专栏后,我也是断断续续在上面发文章,完全没有在简书和微信公众号上发的勤快,主要是它的网站是国...
    郭小果子阅读 3,047评论 15 2
  • 小明开车去旅行,结果被几个交警截住,交警问道:“例行检查,请你配合,检查下酒驾。” 小明点了点头说道:“那好吧。”...
    每天幽默故事阅读 1,747评论 0 0

友情链接更多精彩内容