快速下拉菜单制作(教你做个下拉菜单)(1)

下拉菜单可以提供选择项目让填表人填写,避免了填表人填入混乱数据,让后期数据处理变得高效,简单。

01 基础版下拉菜单

快速下拉菜单制作(教你做个下拉菜单)(2)

以上是某公司登记表,如果要在B列,设置性别下拉菜单,怎么办呢?

操作步骤:

1、选中B2:B12,单击数据选项栏——数据验证,出现如下界面:

快速下拉菜单制作(教你做个下拉菜单)(3)

在验证条件中选择:序列,来源中输入:男,女。

特别注意:男女中间的逗号要在英文输入法中输入,才可以,否则会出现这种情况。

快速下拉菜单制作(教你做个下拉菜单)(4)

GIF操作步骤如下:

快速下拉菜单制作(教你做个下拉菜单)(5)

02 自动去重复的下拉菜单

Excel有个工具叫做数据验证,可以限定输入数据的范围,不过无法去掉重复值。那么如何创建去重复项的下拉列表呢?效果如下:

快速下拉菜单制作(教你做个下拉菜单)(6)

操作步骤:

1、准备数据如下,加入下拉列表创在A列,数据在D列。如下:

快速下拉菜单制作(教你做个下拉菜单)(7)

2、选中工作表,右击——查看代码,输入以下代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Intersect([a:a], Target) Is Nothing Then Exit Sub

'如果选择的单元格不存在于A列,则退出。A列是设置数据验证的区域

If Target.Rows.Count > 1 Then Exit Sub '不允许选择多行

Dim arr, brr, i&, j&, k&, s

Dim d As Object

Set d = CreateObject("scripting.dictionary") '后期字典

arr = Range("d1:d" & Cells(Rows.Count, "d").End(xlUp).Row) '数据来源列

If Not IsArray(arr) Then Exit Sub

'如果不存在数据源选项,则arr非数组,那么退出程序

For i = 2 To UBound(arr)

'D1是标题,从第2行开始遍历数据源,将人名装入字典

If arr(i, 1) <> "" Then d(arr(i, 1)) = ""

Next

s = Join(d.keys, ",")

With Target.Validation

.Delete '删掉旧的

.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _

Operator:=xlBetween, Formula1:=s 'S为数据验证的序列来源

End With

Application.SendKeys "%{down}"

'SendKeys发出快捷键atl ↓直接弹出数据验证下拉列表

Set d = Nothing '释放字典

End Sub

3、关闭vba窗口,在A列就能实现效果。

快速下拉菜单制作(教你做个下拉菜单)(8)

小伙伴们快来试试看吧!

喜欢就关注我,每天分享职场知识,办公技巧!

,