在日常使用 Excel 的过程中,大家是否遭遇过这样令人抓狂的场景:利用数据验证构建的传统下拉菜单,一旦选项内容繁多,从中挑选目标选项就如同大海捞针。为了找到所需内容,我们不得不反复拖动滚动条,眼睛紧盯着屏幕,仿佛要把屏幕看穿,结果稍不留意,好不容易找到的目标又消失在密密麻麻的选项之中。原本简单的数据录入工作,瞬间变成了一场体力与耐力的双重考验,让人疲惫不堪。

Excel高效筛选下拉菜单制作秘籍:告别繁琐选择-趣帮office教程网

更让人无奈的是,这些下拉菜单中的菜单项字体大小固定,无法根据我们的实际需求进行调整。在面对一些视力不佳或者需要在小屏幕设备上操作的情况时,这种一成不变的字体大小更是给我们带来了极大的不便,让人头疼不已。

不过,别担心!今天就为大家带来一项堪称 “神器” 的绝技,让你轻松摆脱上述困扰。只需简单地输入几个关键字,你想要的选项便能立刻出现在眼前,操作过程轻松又高效。是不是迫不及待想见识一下这神奇的效果了?那就让我们马上开启这场奇妙的 Excel 之旅吧!

Excel高效筛选下拉菜单制作秘籍:告别繁琐选择-趣帮office教程网

第一步:打造“一主一辅”工作表搭档

在Excel里有一对亲密无间的工作表搭档——一个负责“台前表演”(我们称之为“录入”工作表),

Excel高效筛选下拉菜单制作秘籍:告别繁琐选择-趣帮office教程网

另一个则默默在“幕后准备”(我们称之为“列表”工作表)。

Excel高效筛选下拉菜单制作秘籍:告别繁琐选择-趣帮office教程网

第二步:召唤ActiveX控件小助手

接下来我们要给“主工作表”找两个得力的小帮手——ActiveX控件。

一个呢,是文本框,它就像是个小记事本,专门用来记录我们输入的数据;

另一个,则是列表框,它就像是个魔法菜单,能展示出各种选项供我们选择。

首先,大家得找到那个藏得很深的“开发工具”选项卡(如果它没出现在你的工具栏上,别急,去“文件”-“选项”-“自定义功能区”里找找,把它请出来)。

Excel高效筛选下拉菜单制作秘籍:告别繁琐选择-趣帮office教程网

然后,咱们就点击“开发工具”里的“插入”,这时候,ActiveX控件的大家庭就展现在我们眼前了。从这里面,我们要挑出“文本框”和“列表框”这两个小家伙,在“主工作表”上给它们找个舒服的位置,让它们站好岗。

Excel高效筛选下拉菜单制作秘籍:告别繁琐选择-趣帮office教程网

不过,为了让它们以后能更好地为我们服务,咱们得给它们起个既好记又实用的名字。

就把文本框的名字改成“录入框”吧,听起来就像是个专门负责记录数据的小能手;而列表框呢,咱们就叫它“列表框”,一听就知道它是用来展示各种选项的。

Excel高效筛选下拉菜单制作秘籍:告别繁琐选择-趣帮office教程网

第三步:编写VBA代码实现功能

请大家点击“开发工具”选项卡中的“Visual Basic”按钮,进入VBA编辑器。然后,找到与“录入表”对应的Sheet对象,双击打开代码窗口。

Excel高效筛选下拉菜单制作秘籍:告别繁琐选择-趣帮office教程网

在代码窗口中,我们要编写三段VBA代码:(下面可以直接复制使用)

Excel高效筛选下拉菜单制作秘籍:告别繁琐选择-趣帮office教程网

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 1 Then
Me.录入框.Visible = True
Me.录入框.Top = Target.Top
Me.录入框.Left = Target.Left
Me.录入框.Width = Target.Width
Me.录入框.Height = Target.Height
Me.录入框.Value = ""
Me.列表框.Left = Target(1, 2).Left
Me.列表框.Top = Target(1, 2).Top
Else
Me.录入框.Visible = False
Me.列表框.Visible = False
End If
End Sub
Private Sub 列表框_Click()
ActiveCell.Value = 列表框.Value
Me.录入框.Visible = False
Me.列表框.Visible = False
End Sub
Private Sub 录入框_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Me.列表框.Visible = True
列表框.Clear
Set rngs = Sheet2.Range("A2", Sheet2.Range("A2").End(xlDown))
For Each Rng In rngs
If InStr(Rng.Value, 录入框.Value) Then 列表框.AddItem Rng.Value
Next
End Sub

只需动动手指,输入几个关键字,你的“菜”就能立刻现身,再也不用在那茫茫“菜海”中苦苦寻觅了。这不仅大大提高了我们的工作效率,还让我们的眼睛得到了解放,再也不用瞪成二郎神啦!

好了,今天的揭秘之旅就到这里啦!希望你们喜欢这个绝技,并在实际运用中发挥出它的最大威力。我们下次再见!