Vba 如何从逗号分隔的列表在Excel中构建下拉列表
我有一个单元格,其中包含一个逗号分隔的值列表,我需要能够使用这些值作为验证列表。有没有办法做到这一点?Vba 如何从逗号分隔的列表在Excel中构建下拉列表,vba,excel,Vba,Excel,我有一个单元格,其中包含一个逗号分隔的值列表,我需要能够使用这些值作为验证列表。有没有办法做到这一点? 值列表的长度可以是0到50个值。可以将逗号分隔的字符串从一个单元格拆分为一列不带VBA的单元格: 复制单元格并在第1行中输入: =CHOOSE(ROW(), 然后粘贴,),输入并复制到合适的位置。这应该可以: 假设您必须处理的工作表的名称为“任务”,源位于单元格A1中,您必须在A2中为同一工作表添加验证列表 激活VBA 转到VBA编辑器 为工作簿模块创建以下代码 Private Sub W
值列表的长度可以是0到50个值。可以将逗号分隔的字符串从一个单元格拆分为一列不带VBA的单元格: 复制单元格并在第1行中输入:
=CHOOSE(ROW(),
然后粘贴,)
,输入并复制到合适的位置。这应该可以:
假设您必须处理的工作表的名称为“任务”,源位于单元格A1中,您必须在A2中为同一工作表添加验证列表
- 激活VBA
- 转到VBA编辑器
- 为工作簿模块创建以下代码
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
AddCSVListValidation "Task", "A1", "A2"
这还允许您将操作扩展到多个源单元格和目标单元格。您需要使用.xlsm扩展名保存本书,并在较新的excel版本中启用宏
您需要将内容拆分为各自的单元格。Excel可以做到这一点。如果列表不太大,只需使用验证数据列表,在源代码中写入0,2,5,7,50@KenWhite你的链接让我准确地找到了我所需要的,谢谢。你怎么能对AD1到AD100这样的特定范围做同样的事情呢?。那么公式是什么呢?。你能告诉我“任务”、“AD1:AD100”和“目标细胞”吗