运行时错误将数据验证添加到Excel

时间:2015-06-16 20:26:59

标签: excel vba excel-vba validation

我有一个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

我做错了什么?

感谢您的帮助。

2 个答案:

答案 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的内置公式验证不会让它输入错误的公式 - 因此错误