簡體   English   中英

使用數據驗證下拉列表時出現錯誤 1004

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM