我正在嘗試爲Excel表格創建一個過濾器。我有2個下拉框,其中的項目列表動態地添加到一個在刷新表時調用的宏中。如何從Excel中的代碼設置下拉選擇(VBA)
Set selectBook = Worksheets("Report").DropDowns("DropDownBook")
selectBook.RemoveAllItems
For Each b In books
selectBook.AddItem (b)
Next
其中「books」是具有新值的數組。其他與「作者」下拉的代碼類似。 運行此宏後,沒有顯示初始選擇。我附加了一個宏到dropdownchange事件,它讀取這兩個下拉列表中的選項
Set books = Worksheets("Report").DropDowns("DropDownBook")
bookSelect = books.List(books.ListIndex)
並進行必要的過濾。問題是,如果我選擇一個作者,宏將在上面給出第二行代碼破壞與
Run time error '1004':
Unable to get the List property of the DropDown class
,如果我選擇了一本書,它會做同樣的作者。我想這會發生,因爲在框中沒有初始選擇,但我似乎無法找到如何在代碼中創建一個。我試過
selectBook.ListIndex = 0, selectBook.Value=0 etc.
,但沒有任何工作。我錯過了明顯的東西嗎?任何幫助將不勝感激。
奇怪的是它適用於我...... –
我可以看到您的文件嗎?如果是的話,然後上傳到任何文件共享網站,並在這裏分享鏈接.. –
不幸的是,它是商業敏感的,所以我不能發佈真正的文件,並沒有模擬複製錯誤。哪個選項是應該工作的選項? .ListIndex = 0? – user2808401