Excel下拉菜单制作教程,从简单到复杂全囊括
编按:一提及下拉菜单,我信任年夜多半有点Excel根基的都邑做。但本日我们来点纷歧样的下拉菜单,从青铜级别到王者级别,包罗万象,赶紧来看一看吧。
下面,我们将依照从简单到高档来给年夜家先容如下几种下拉菜单。
1、最简单的下拉菜单

2、名称制造下拉菜单
3、动态下拉菜单(没有空缺选项的)
4、多内容下拉菜单,添补时拆分内容
5、智能录入下拉菜单,添补时拆分内容
注意:本日主要说的内容是“数据验证(Validation)”的内容,不涉及控件使用,各个Excel版本都可以使用。
【正文】
1、青铜(最简单的下拉菜单)
制造办法:
在对象栏中,点击“数据验证”功效;
在弹出的窗口中,按下图:
在【容许】中选择“序列”,在【起源】中输入“男,女”,按肯定键完成操作。
注意:无论选填的内容是什么,都要用“英文的逗号距离”,并且不需使用双引号。
2、白银
办法1:在数据验证窗口中,如下设置
【起源】处可以直接选择单位格区域,即可把这部门的内容作为下拉菜单的内容。
办法2:我们也可以使用名称治理器来操作:
选择A2:A17单位格,然后在【名称框】中编纂一个名称:例如我们输入“科学家”,然后【按回车停止编纂】
然后在数据验证窗口中如下图设置;
3、黄金——动态下拉菜单
假如我们的选择项数目不肯定,跟着添加或者删除,下拉选项也要随之增长削减,如下图所示:
按CTRL+F3组合键,打开【名称治理器】窗口,新建一个名称“选项”,按下图设置名称内容:
引用地位的函数:=OFFSET(黄金!$A$2,,,COUNTA(黄金!$A$2:$A$997),)
使用COUNTA函数肯定区域中的内容数目,然后在使用数据验证创立下拉菜单即可。
假如A列数据是使用函数后获得的,例如把某列数据去重,如下图:
A2单位格的函数为:
{=IFERROR(INDEX($A$2:$A$38,SMALL(IF(MATCH($A$2:$A$38,$A$2:$A$38,0)=ROW($1:$37),ROW($1:$37),9^9),ROW(B1))),"大众"大众)}
这个函数是万金油,之前的教程中有解释的,就不在这里赘述了。然后下拉A2单位格添补至A18,就获得了去重后的内容,然后再使用名称即可引用到数据验证中。
然则要注意:表中从B8:B18都是IFERROR函数容错后的空格,那么适才用COUNTA函数引出选项个数的方式就不正确了,我们换一个写法即可,如下:
函数如下:
=OFFSET(黄金!$B$2,,,COUNTA(黄金!$B$2:$B$18)-COUNTBLANK(黄金!$B$2:$B$18),)
用COUNTA-COUNTBLANK的方式肯定应该取若干个选项内容。
截至到此,【下拉选填菜单】的操作办法,共同【函数】和【自界说名称】还可以顺应事情,然则已经显得力有未逮,由于跟着数据的变化,对付函数和自界说名称的调整是在所不免的。那么【更高档其余下拉选填菜单】我们继续看。
4、钻石级别——多内容下拉菜单,添补时拆分内容
下拉菜单选择项包括多个分歧属性的内容,选填后主动填入多个单位格。这个方式是使用VBA操作的,代码如下:
Private Sub Worksheet_Change(ByVal Target As Range) '''单位格值转变,触发变乱
If Target.Column = 4 And Target.Count = 1 Then '''断定是否在D列,选择一个单位格
With Target '''使用这个单位格
s = .Text '''单位格的值赋值给一个变量s
.Resize(1, 2) = Split(s, 公众:"大众) '''单位格扩大1行2列,然后把用Split函数按冒号拆分的数组赋值到单位格区域
End With '''with停止语句
End If '''停止断定
End Sub '''工程停止
Private Sub Worksheet_SelectionChange(ByVal Target As Range) '''选择单位格转变,触发变乱
If Target.Column = 4 And Target.Count = 1 Then '''断定是否在D列,选择一个单位格
With Sheets(公众钻石"大众)
s = Join(Application.Transpose(.Range("大众A2:A"大众 & .[A65000].End(3).Row)), "大众,"大众) '''将A列从A2开端,有值的单位格Join成一个字符串,用英文逗号距离
End With
With Selection.Validation '对所选择的单位格,创立数据有用性
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=s
.IgnoreBlank = True '设置单位格 容许空值
.InCellDropdown = True '提供下拉列标
End With
End If '停止断定
End Sub '''工程停止
按下图粘贴或者编写代码亦可。
5、王者——智能录入下拉菜单,添补时拆分内容
同窗们做过多级联动的下拉菜单吗。你是若何做的呢,按首行批量创立自界说名称,然后再INDIRECT。
这种办法对付简单的数据源照样可以采纳的,然则对付比拟多的内容就不是很便利,例如我们本日的这份数据源——“全国【省、市、县 三层】的智能下拉添补功效”
假如同窗们用传统方式做的话,自界说名称要做若干呢。
下面看看作者E图表述制造后的后果吧:
这也是用VBA做的,VBA可以做许多日常不敢想象的内容,也只有VBA能力做出高档的功效。不说废话,代码如下:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 And Target.Row = 2 Then '''假如被转变值的单位格7行2列【G2】单位格时
With Sheets("大众王者公众) '''使用《王者》事情表
arr = .Range(公众A2:C"大众 & .[A100000].End(3).Row) '''将从A2单位格开端到A列已使用的末行停止的单位格区域赋值数值arr
s = Target.Text '''将被操作单位格的值赋值给变量s
If s <> "大众公众 Then '''假如s不为空值
For i = 1 To UBound(arr) '''轮回数组arr
st = arr(i, 1) & 公众|公众 & arr(i, 2) & "大众|公众 & arr(i, 3) '''将省市县内容归并,而且用|距离
If st Like "大众*公众 & s & 公众*"大众 Then '''假如st字符串包括s变量的内容
svd = svd & st & "大众,"大众 '''将st赋值给svd变量,并用英文逗号距离,作为下拉菜单的内容
End If
Next i
End If
With .Range(公众G3"大众).Validation '对G3单位格创立数据有用性
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=svd
.IgnoreBlank = True '设置单位格 容许空值
.InCellDropdown = True '提供下拉列标
End With
.[G3] = "大众公众 '''G3单位格初始值为空
End With
End If
If Target.Column = 7 And Target.Row = 3 And Target.Text <> 公众"大众 Then '''假如G3单位格的值被转变,且值不为空时
With Sheets("大众王者"大众)
a = .[H100000].End(3).Row + 1 '''肯定H列中为空的第一行
.Cells(a, 8) = Split(Target.Text, 公众|"大众)(0) '''Split办法拆分下拉菜单的内容,将第1个值放入第8列的末行空缺行
.Cells(a, 9) = Split(Target.Text, "大众|公众)(1) '''同上,放入第2个值
.Cells(a, 10) = Split(Target.Text, "大众|公众)(2) '''同上,放入第3个值
'''注意:Split办法拆分后,是一个一维数组。vba中的内存数组序号默认是从0开端计数的
.[G3] = 公众"大众 '''G3单位格再归零
End With
End If
End Sub
不需自界说名称,不需多级联动的年夜量数据验证,这将极年夜的节俭EXCEL的内存,年夜年夜进步了运行的效力,同时一级选择、多级录入的方式也节俭了操作的环节。
写在末了:王者只是人世的强者,而这世间还有更高的存在。人外人、天外天,EXCEL之外有EXCEL,除开上面这种“下拉菜单”,我们还有更高档其余,年夜家想不想看呢。
做Excel高手,快速晋升事情效力,部落窝教育《一周Excel纵贯车》视频和《Excel极速贯通班》直播课经心为你。
进修交流请加微信:hclhclsc进微信进修群。
若何制造智能的下拉菜单。输入数据隐约匹配对应的下拉选项
最简单的多级下拉菜单制造办法,不必要界说名称
别怕,VBA入门级教程来了,前提语句很简单。
八年夜查找函数公式,轻松搞定数据中的多前提查找
版权声名:
本文作者E图表述;同时部落窝教育享有专有使用权。若需转载请接洽部落窝教育。