如何在 Excel 下拉列表中输入时自动完成?
ms excelmicrosoft technologiescomputers更新于 2024/9/21 4:28:17
使用包含多项内容的下拉列表时,很难只选择一项。使用自动完成功能可以解决这个问题。阅读本教程,了解如何在 Excel 下拉列表中输入时自动完成。在处理重复值时,自动完成功能可以节省大量时间。
如何在 Excel 下拉列表中输入时自动完成
让我们通过一个简单的流程来了解如何在 Excel 下拉列表中输入时自动完成。
步骤 1
假设有一个带有下拉列表的 Excel 电子表格。要创建下拉列表,请选择数据并点击"数据",然后选择"仅允许列表"并点击"确定"。

现在在工作表上绘制一个组合框;我们可以在"Developer"菜单下的"Active X"命令下找到它,如下图所示。

步骤 2
现在右键单击该框,选择"属性",并将名称更改为"TempCombo",如下图所示。

步骤 3
然后关闭"属性"弹出窗口,右键单击工作表名称,然后选择"查看代码"打开 VB 应用程序,然后在文本框中输入程序,如下图所示。图片。
程序
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Update by Nirmal
Dim xCombox As OLEObject
Dim xStr As String
Dim xWs As Worksheet
Dim xArr
Set xWs = Application.ActiveSheet
On Error Resume Next
Set xCombox = xWs.OLEObjects("TempCombo")
With xCombox
.ListFillRange = ""
.LinkedCell = ""
.Visible = False
End With
If Target.Validation.Type = 3 Then
Target.Validation.InCellDropdown = False
Cancel = True
xStr = Target.Validation.Formula1
xStr = Right(xStr, Len(xStr) - 1)
If xStr = "" Then Exit Sub
With xCombox
.Visible = True
.Left = Target.Left
.Top = Target.Top
.Width = Target.Width + 5
.Height = Target.Height + 5
.ListFillRange = xStr
If .ListFillRange = "" Then
xArr = Split(xStr, ",")
Me.TempCombo.List = xArr
End If
.LinkedCell = Target.Address
End With
xCombox.Activate
Me.TempCombo.DropDown
End If
End Sub
Private Sub TempCombo_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Select Case KeyCode
Case 9
Application.ActiveCell.Offset(0, 1).Activate
Case 13
Application.ActiveCell.Offset(1, 0).Activate
End Select
End Sub

现在将工作表保存为启用宏的模板,使用命令"Alt+Q"关闭 VBA 应用程序,然后转到工作表并单击设计退出设计模式,最终输出将类似于下图所示。

结论
在本教程中,我们使用了一个简单的示例来演示如何在 Excel 中输入下拉列表时实现自动完成功能。
相关文章
有用资源
excel 参考教程 - 该教程包含有关 excel 的更多信息:https://www.cainiaomax.com/excel/

