VBA Excel添加动态验证列表

时间:2015-03-11 19:31:32

标签: excel vba validation

我有一个工作表,我尝试以编程方式在适当的时候添加DataValidation-Lists Range(BF:BZ)

目前Range(D3:D500)中的所有单元格都使用DataValidation列表=type,我有sub来检查该范围内的任何单元格是否发生变化。如果是这样,它会更新该行中的所有单元格。当我到达选项范围时,它会引用单独表格上的表格来填写内容。

example of different types

此时填充每个选项时,我还需要根据单元格中的文本在适当时创建DataValidation列表。第6行是需要列表的结果示例,而第3行到第5行有多个结果应该保持不变(对于某人稍后手动输入ID或沿着这些行输入某些内容)

Dim formString As String
Let formString = "=" & Range(colAddress)
Range(colAddress).Select
    With Selection.Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:=formString
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = "InputTitle"
    .ErrorTitle = "ErrorTitle"
    .InputMessage = "InputMsg"
    .ErrorMessage = "ErrorMsg"
    .ShowInput = True
    .ShowError = True
End With

此代码适用于存在有效DataValidation列表的情况,但当Run-time error '1004': Application-defined or object-defined error具有formString

等值时,我会收到speed_OW

我是否必须基本上列出包含所有有效查找的列表,并调用类似IFERROR(VLOOKUP(Range(colAddress),listOfLists,1,FALSE),"No List")

的内容

或者是否有更简洁的方法来执行此操作以便:如果当前单元格存在数据验证列表,则设置它,否则单独保留单元格以供用户手动更改

修改以下附加信息

所以在另一个问题中,有人提到引用名称管理器,我认为只需查看,我需要检查条件。我明天会试试这个

0 个答案:

没有答案