我有一个excel,我正在添加数据验证。
当我通过excel函数使用数据验证过程时,它可以正常工作:
自定义公式:= IF(AND(M7> = DATE(2015; 1; 1); M7< = D7); TRUE; FALSE)
但是当我使用VBA代码添加该数据验证时,会发生以下错误:
运行时错误' 1004':
应用程序定义或对象定义的错误
VBA:
Range("M7:M" & (6 + 15)).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=IF(AND(M7>=DATE(2015;1;1);M7<=D7);TRUE;FALSE)"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = False
.ShowError = True
End With
我做错了什么?
感谢您的帮助。
答案 0 :(得分:1)
全部替换; (分号),(逗号)。宏记录器有时是愚蠢的。在VBA代码中,您必须使用美国英语Excel标记:。 (点)表示小数,(逗号)表示公式中的参数分隔符。
像这样:
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=IF(AND(M7>=DATE(2015,1,1),M7<=D7),TRUE,FALSE)"
答案 1 :(得分:-1)
检查formula1的有效性。我的猜测是它没有正确格式化并且excel的内置公式验证不会让它输入错误的公式 - 因此错误