如何使用逗号分隔列表在Excel中build立下拉列表

我有一个单元格包含逗号分隔值列表,我需要能够使用这些值作为validation列表。 有没有办法做到这一点? 值的列表可以是0到50个值的任何值。

可以将一个逗号分隔的string从一个单元格拆分为一列没有VBA的单元格:

复制单元格并在Row1中input:

=CHOOSE(ROW(), 

然后粘贴) ,input并复制下来以适应。

这应该工作:

假设您的工作表的名称是“任务”,源代码位于单元格A1中,并且您必须在A2中为同一工作表添加validation列表。

  • 激活VBA
  • 转到VBA编辑器
  • 为工作簿模块创build以下代码

     Private Sub Workbook_Open() AddCSVListValidation "Task", "A1", "A2" End Sub Sub AddCSVListValidation(sheet, cellSource, cellTarget) txt = ActiveWorkbook.Worksheets(sheet).Range(cellSource).Value ActiveWorkbook.Worksheets(sheet).Range(cellTarget) = "Select your values here" With ActiveWorkbook.Worksheets(sheet).Range(cellTarget).Validation .Delete .Add Type:=xlValidateList, Formula1:="a,b,c" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End Sub 

结果如下所示 – 无论何时打开工作簿,它都将被自动填充。 希望这可以帮助。

您还可以捕捉任务表更改的事件,并在A1范围更新的条件下运行代码,以通过调用更新validation列表

  AddCSVListValidation "Task", "A1", "A2" 

这也使您可以将操作扩展到多个源和目标单元格。 您将需要以.xlsm扩展名保存该书,并在最新的Excel版本中启用macros。

在这里输入图像说明