验证VBA多个条件



我正在尝试编写一个VBA宏,该宏:

1( 获取当前选定的活动单元格。

2( 如果值是一个小于或等于另一个单元格的数字(例如B2也包含一个数字(,则执行数据验证。

3( OR在活动单元格中的值等于用户插入的字符串"NA"。

这是我迄今为止想出的代码:

Sub Macro()
With Selection.Validation
.Delete
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlLessEqual, Formula1:="=OR(" & ActiveCell.Value & "=""NA"",AND(ISNUMBER(" & ActiveCell.Value & ")," & ActiveCell.Value & "<=B2))"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub

但它一直给我一个:

运行时错误"1004":应用程序定义或对象定义错误。

您对此问题有任何解决方案吗?

提前感谢!

试试这个。您需要引用单元格的地址,而不是其值。

Sub Macro()
With Selection.Validation
.Delete
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, _
Formula1:="=OR(" & ActiveCell.Address & "=""NA"",AND(ISNUMBER(" & ActiveCell.Address & ")," & ActiveCell.Address & "<=B2))"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub

相关内容

  • 没有找到相关文章

最新更新