如何在Excel中创建具有多个选择的下拉列表

  • Share This
Hugh West

直到现在,我们看了 如何创建下拉列表 今天我将展示 如何在Excel中创建一个有多个选择的下拉列表 .

下载实践工作手册

你可以从这里下载实践工作手册。

创建具有多重选择的下拉列表.xlsm

在Excel中创建具有多个选择的下拉列表的分步程序

这里,我们有一个数据集,其中有一列 书名 我们今天的目标是在这个数据集的基础上创建一个可以进行多项选择的下拉列表。 我将在下面的章节中展示逐步的过程。

第1步:通过使用数据验证创建下拉列表

为了创建一个有多个选择的下拉列表,我们必须先创建一个下拉列表。 让我们走一遍程序。

  • 首先,选择你要创建下拉列表的单元格。 我选择了 细胞D5 .

  • 接下来,到 数据 选项卡,并选择 数据验证 从丝带上。

  • 然后,从 数据验证 窗口,选择 列表 允许 部分,并写下你想添加到列表中的单元格数据的范围。 来源 领域。
  • 或者,你也可以点击在 "我的 "中的向上的小箭头。 来源 部分,并从工作表中选择数据范围。

  • 最后,我们将看到一个下拉列表在 细胞D5 .

类似的阅读。

  • 如何在Excel中制作一个下拉列表(独立和从属)。
  • 在Excel中从下拉列表中进行多重选择(3种方法)
  • 如何在Excel中创建附属的下拉列表
  • 在Excel中创建多列的下拉列表(3种方法)

第2步:通过VBA代码使下拉列表接受多重选择

我们已经创建了下拉列表。 现在,是时候准备下拉列表的多重选择了。 我将使用 2 VBA 代码来使列表接受多个选择。 一个将接受数据的重复,另一个将不接受数据的重复。

案例1:VBA代码用于重复的多重选择

在本节中,我将展示创建一个具有多个选择的下拉列表的方法,该列表将采取重复的数据。

让我们走过这些程序。

  • 首先,按 ALT + F11 以打开 VBA 窗口。
  • 然后,选择 项目探索者 .另外。 - 点击 在你希望完成任务的工作表上。

  • 同时,一个 编码 窗口将打开。
  • 之后,在该窗口写下以下代码。
 Private Sub Worksheet_Change(ByVal Target As Range) Dim Oldvalue As String Dim Newvalue As String On Error GoTo Exitsub If Target.Address = "$D$5" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.Value Application.Undo Oldvalue = Target.Value If Oldvalue = "" ThenTarget.Value = Newvalue Else Target.Value = Oldvalue & ", " & Newvalue End If End If Application.EnableEvents = True Exitsubut: Application.EnableEvents = True End Sub 

请注意。 在代码部分( 如果 目标.地址 = "$D$5" 那么 )而不是单元格引用 $D$5, 你写下你创建下拉列表的单元格参考。

  • 最后,回到工作表中,我们将能够在下拉列表中选择多个元素,并重复选择同一元素。

案例2:VBA代码实现无重复的多重选择

在本节中,我将展示创建一个具有多个选择的下拉列表的方法,这将不需要重复的数据。

让我们走过这些程序。

  • 首先,按 ALT + F11 以打开 VBA 窗口。
  • 然后,选择 项目探索者 .另外。 - 点击 在你希望完成任务的工作表上。

  • 同时,一个 编码 窗口将出现。
  • 之后,在该窗口中输入以下代码。
 Private Sub Worksheet_Change(ByVal Target As Range) Dim Oldvalue As String Dim Newvalue As String Application.EnableEvents = True On Error GoTo Exitsub If Target.Address = "$D$5" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.Value Application.Undo Oldvalue =Target.Value 如果Oldvalue = "" 那么Target.Value = Newvalue Else 如果InStr(1, Oldvalue, Newvalue) = 0 那么Target.Value = Oldvalue & ", " & Newvalue Else: Target.Value = Oldvalue End If End If Application.EnableEvents = True Exitsubish: Application.EnableEvents = True End Sub 

请注意。 在代码部分( 如果 目标.地址 = "$D$5" 那么 )而不是单元格引用 $D$5, 你写下你创建下拉列表的单元格引用。

  • 最后,回到工作表中,我们将能够在下拉列表中选择多个元素,而不会出现同一元素的重复。

总结

使用这种方法,你可以在Excel中创建一个有多个选择的下拉列表。 你有什么问题吗? 欢迎在评论区告诉我们。 访问我们的 ExcelWIKI网站 获取更多有关的文章 ǞǞǞ .

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.