在IF条件下使用VBA进行数据验证不起作用



我正在尝试将数据验证与IF条件一起使用,IF条件可以提供两个不同的数据验证列表。dvEntry和dvExit是一个定义的范围(表的列(。

如果我在Excdel单元格中输入公式,它可以正常工作:=IF(AI6="ENTRY",dvEntry,IF(AI6="EXIT",dvExit,"((

但是,如果我试图在VBA代码中使用如上所述的两个If条件,就会出现错误。ActiveRow是我当前选择的行。TRIGGERcol是用于数据验证的列。

Set Reset = tbl.ListRows(ActiveRow)
With Reset
.Range(TRIGGERcol).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:="=IF(AI6=""ENTRY"", dvEntry, IF(AI6=""EXIT"", dvExit, """"))"
End With

如果我禁用第二个If条件,它就会工作。但我无法使用所需的功能。我试过使用IFS而不是IF,结果是一样的。使用多个IF条件时,VBA验证有什么问题?

感谢您的帮助。

试试这个:

With Selection.Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:="= IF( $AI$6 = ""ENTRY"", dvEntry, IF( $AI$6 = ""EXIT"", dvExit, TEXT(,) ) )"
End With

Selection替换为适当的范围。

最新更新