如何在Excel下拉列表中输入时自动完成?
在Excel中,我们可以通过下拉列表(Data Validation)来限定单元格输入的内容,但是当下拉列表中的选项很多时,手动选择会比较麻烦。那么,有没有一种方法,能够在输入时,自动完成下拉列表中的内容呢?本文介绍两种方法来实现在Excel下拉列表中输入时自动完成的功能。
方法一:使用VBA宏代码
以下是使用VBA宏代码来实现自动完成的方法。该方法适用于较老版本的Excel(如2007以下版本),并且需要开启宏功能。
首先,打开Excel文档,按ALT + F11
打开VBA编辑器,在左侧“项目资源管理器”窗口中,双击该文档的名称,在右侧”代码”区域中插入以下代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("A2:A10")) Is Nothing Then Exit Sub
With Target.Validation
.Enabled = False
.Delete
End With
With Me.Cells(20, Target.Column).Validation
.Add Type:=xlValidateList, Formula1:="=" & Target.Resize(9).Address
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
其中,Range("A2:A10")
代表下拉列表的源范围;Me.Cells(20, Target.Column)
代表自动完成列表的单元格;Target.Resize(9).Address
代表获取下拉列表的内容。
保存并关闭VBA编辑器。现在,在下拉列表中输入时,会自动选择与输入相似的项。
方法二:使用Excel自带的函数
以下是使用Excel自带的函数来实现自动完成的方法。该方法适用于较新版本的Excel(如2010及以上版本)。
选择需要应用自动完成的单元格,然后在公式栏中输入以下函数:
=IFERROR(INDEX(B:B,MATCH("*"&LEFT(A3,2)&"*",B:B,0)),"")
其中,B:B
代表下拉列表的源范围;A3
代表输入单元格;LEFT(A3,2)
代表输入单元格前两个字符;MATCH
函数用于在下拉列表中查找与输入相似的项;INDEX
函数用于返回查找到的项;IFERROR
函数用于避免出现空值的情况。
结论
本文介绍了如何在Excel下拉列表中输入时自动完成的两种方法。使用VBA宏代码可以适用于较老版本的Excel,但需要开启宏功能;使用Excel自带的函数则可以适用于较新版本的Excel。无论使用哪种方法,都可以大大提高数据输入的效率。