我有一个包含逗号分隔值列表的单元格,我需要能够将这些值用作验证列表。有没有办法做到这一点? 值列表可以是0到50个值的任何值。
答案 0 :(得分:0)
可以将一个逗号分隔的字符串从一个单元格拆分为一个没有VBA的单元格列:
复制单元格并在Row1中输入:
=CHOOSE(ROW(),
然后粘贴,)
,输入并复制以适应。
答案 1 :(得分:0)
这应该有效:
假设您必须处理的工作表名称为“任务”,则源位于单元格A1中,您必须在A2中为同一工作表添加验证列表。
为Workbook模块
创建以下代码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范围更新的条件下运行代码,以通过调用
来更新验证列表 AddCSVListValidation "Task", "A1", "A2"
这也允许您将操作扩展到多个源和目标单元格。您需要以.xlsm扩展名保存图书,并在最近的excel版本中启用宏。