我正在尝试将数据验证与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
替换为适当的范围。