2017-08-29 53 views
0

我想添加到創建的DataValidation DropDownList兩個額外的東西。首先是將DropDownList中的行數設置爲特定的數字,例如可以通過「.ListRows = 11」在VBA中使用普通的combolist。其次,如果用戶手動鍵入而不是從列表中選擇,則自動填充由用戶鍵入的文本(Combolist中的MatchEntry)到來自DropDownList的基於單元格的位置。我發現我無法在Validation.Add Method (Excel)的位置上完成任務,而且我對代碼構建還不夠了解,我該如何去做,或者我該如何裁判創建VBA代碼列表。Excel VBA數據驗證列表。列表屬性

With Range("F26:H26").Validation 
    .Delete 
     .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _ 
     Operator:=xlBetween, Formula1:="=RootCauses!A1:A11" 
    .IgnoreBlank = True 
    .InCellDropdown = True 
    .InputTitle = varValTitle 
    .ErrorTitle = varValErrTitle 
    .InputMessage = varValMessage 
    .ErrorMessage = varValErrMessgae 
    .ShowInput = True 
    .ShowError = True 
    .ListRows = 11 '← my first broken solution 
    .MatchEntry = 1 '← my second broken solution 
End With 
+0

無需限制行數。這段代碼已經做了'Formula1:=「= RootCauses!A1:A11'。數據驗證不支持自動完成。因爲Excel不公開按鍵事件,所以很難構建自己的(if你很自在地使用WinAPI [有一種解決方法](https://stackoverflow.com/questions/11153995/is-there-any-event-that-fires-when-keys-are-pressed-when-editing-a - 但它是先進的東西) –

+0

謝謝,但它有8行,我需要11顯示所有的可能性,在一個時刻沒有滾動 – NoOne

+0

對不起更多的壞消息Excel不包括一個選項來自定義最大數量顯示的行。 –

回答

0

好了,數據驗證有下拉列表中作爲一個額外的選擇,所以我創建combolist對象,所有參數設置,就能自動打字的話,行的設置數量,適合要求的範圍。