添加一个dynamicvalidation列表的VBA Excel

我有一个工作表,我试图以适当的Range(BF:BZ)编程方式添加DataValidation列表,

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

不同类型的例子

在填充每个选项的时候,我需要根据单元格中的文本在适当的时候创build一个DataValidation-List。 第6行是需要列表的结果的示例,而第3行到第5行有多个结果,应该保持原样(对于某些人稍后手动inputID或沿着这些行inputID)

 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-list的情况下工作,但得到Run-time error '1004': Application-defined or object-defined errorformString具有诸如speed_OW

我将不得不做基本的列表,其中包含所有有效的查找和调用像IFERROR(VLOOKUP(Range(colAddress),listOfLists,1,FALSE),"No List")

还是有一个更干净的方法来做到这一点,以便:如果当前单元格存在数据validation列表,然后设置它,否则留下单元格为用户手动更改

编辑下面的附加信息

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