[英]Error 1004 when using data validation drop-down list
使用驗證數據下拉列表時出現問題。 如果滿足條件,我已經注冊了應該顯示下拉列表的宏(下拉列表基於命名范圍)。 當我手動鍵入此內容並將數據驗證添加到所選范圍時,它工作正常,但是當我嘗試使用宏時,它失敗並在 .Add 行顯示錯誤 1004。 注冊宏並在之后運行它也是不可能的。 這是代碼:
Dim kolQ as Range
Set kolQ = (here is range in column Q)
With kolQ.Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=IF(AND($L2<DATE(2014;5;1);$M2>DATE(2015;4;30));list_a;list_b)"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "No valid status!"
.InputMessage = ""
.ErrorMessage = "Chose option from drop-down list!"
.ShowInput = True
.ShowError = True
End With
我已經通過論壇和谷歌搜索過,但我找到的所有答案在這種情況下都不起作用。 命名范圍 (list_a, list_b) 存在於另一張工作簿中。
嘗試改變;
到,
在您的Formula1
。
另外,嘗試合並CHOOSE
功能。 類似的東西:
Formula1:="=CHOOSE(IF(AND($L2<DATE(2014,5,1),$M2>DATE(2015,4,30)),1,2),list_a,list_b)"
在編寫這樣的公式時,局部區域格式將被忽略,因此在單元格中正常工作的分號將失敗。 你需要改變你的公式:
.Add Type:=xlValidateList, Formula1:="=IF(AND($L2<DATE(2014;5;1);$M2>DATE(2015;4;30));list_a;list_b)"
至:
.Add Type:=xlValidateList, Formula1:="=IF(AND($L2<DATE(2014,5,1),$M2>DATE(2015,4,30)),list_a,list_b)"
使用 Range.Activate 和 With ActiveCell.Validation 就像這里建議的 #3
https://www.mrexcel.com/board/threads/adding-data-validation-via-vba-returns-1004-error.331279/
它只是幫助了我
確保您的驗證列表只有一列寬。 嘗試使用現有的命名范圍時出現 1004 錯誤,直到我意識到現有的命名范圍是兩列寬。 必須創建一個只有一列寬的新命名范圍來解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.