如何在 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 中输入下拉列表时实现自动完成功能。


相关文章


有用资源