如何在Excel下拉列表中输入时自动完成?

如何在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。无论使用哪种方法,都可以大大提高数据输入的效率。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Excel 教程