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


当使用包含许多项目的下拉列表时,选择其中一个会比较困难。可以使用自动完成功能来解决此问题。阅读本教程,了解如何在 Excel 下拉列表中输入时自动完成。当我们处理重复值时,自动完成可以节省大量时间。

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

让我们来看一个简单的过程,了解如何在 Excel 下拉列表中输入时自动完成。

步骤 1

考虑一个带有下拉列表的 Excel 电子表格。要创建下拉列表,请选择数据并单击“数据”,然后选择“仅允许列表”并单击“确定”。

现在在工作表上绘制一个组合框;我们可以在开发人员选项卡下的 ActiveX 控件中找到它,如下图所示。

步骤 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 中的下拉列表中输入时自动完成。

更新于: 2023年1月3日

7K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告