2015-06-16 29 views
0

我有一個Excel即時添加數據驗證。運行時錯誤添加數據驗證到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 

什麼即時做錯了?

謝謝你的幫助。

回答

1

全部替換; (分號),(逗號)。宏錄像機有時候是昏暗的。在VBA代碼中,您必須使用美國英語Excel標記:。 (點)爲小數,(逗號)爲公式中的參數分隔符。

像這樣:

.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _ 
xlBetween, Formula1:="=IF(AND(M7>=DATE(2015,1,1),M7<=D7),TRUE,FALSE)" 
+0

謝謝!這解決了我的問題:) –

+0

不客氣。 (爲什麼不把它標記爲答案呢?) – vacip

-1

檢查一級方程式的有效性。我的猜測是它的格式不正確,並且excel內置的公式驗證不會讓它輸入錯誤的公式 - 因此錯誤

+0

想知道爲什麼這是downvoted ... – JGoldz75