Excel2016实现多级下拉联动
2018-11-16 本文已影响47人
冷态度0817
在日常工作中,难免需要使用办公软件,没有系统性的去学习office,只能遇到问题就去寻找解决问题的方法。这几天,需要提供一个模板给客户进行数据填写录入,某些数据字段有规则限定,需要用到下拉联动。在此记录,好记性不如烂笔头。
1.准备一个excel文件,需要有两个工作簿,一个用来实际操作,一个用来存放下拉数据。
2.我们以中国行政区划为例来进行操作。录入省份数据,选中设置以首行根据所选内容创建名称,如下图:
设置省份数据2.录入各省份下的市级数据,设置以首行根据所选内容创建名称,如下图:
设置市级数据3.录入各市级下的县区数据,设置以首行根据所选内容创建名称,如下图:
设置县区数据在名称管理器中,可看到以上设置的内容,如下图
名称管理器4.实操到了,在实际使用的位置设置数据有效性校验,省份设置如下:
省份设置市级设置如下:
市级设置县区设置如下:
县区设置5.到这一步,已经能够实现下拉联动了,但会存在一个问题。要实现真正的联动,需做到改变父级,清空子级的操作,这边就需要用到代码。
查看代码 代码设置代码解释:
代码解释附上代码文本:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range
If Target.Row < 2 Then Exit Sub '修改第一行(标题)退出程序
For Each Rng In Target
If Rng.Column = 1 Then
Rng.Offset(0, 1).ClearContents
Rng.Offset(0, 2).ClearContents
ElseIf Rng.Column = 2 Then
Rng.Offset(0, 1).ClearContents
End If
Next
End Sub