我一直在處理這個代碼,其中我有一個用戶窗體,它具有列表框和組合框的混搭。到目前爲止,我已經填充了列表框,但由於某種原因,我在組合框(combobox1
和combobox2
)中遇到了問題。不明白爲什麼我收到'下標超出範圍'
我已經成功填充combobox1
的下拉列表,並且從該列表中我想通過已經通過'名稱管理器'調出的命名範圍'過濾'。命名的範圍被稱爲Range_Books
。
Range_Books
參考BOOKS
或VBA代碼Sheet7
中的table48
中的兩列和可變數量的行。下面的代碼是我最近嘗試完成我已經解釋但仍然失敗的迭代。
我最初試圖直接調出範圍而不使用Worksheets("Sheet7").
,因爲命名範圍不在特定表單中,但我仍然不確定哪個是調出範圍的最佳方式,並且如果這是根我的問題。我已經直接呼叫範圍,沒有worksheets(" ")
,這是我爲什麼如此困惑。
請注意,當用戶窗體初始化時,它會打開一個輔助工作簿以填充列表框。在初始化之後,可以在爲combobox1
選擇一個值之前完成各種操作,從而激活我嘗試創建的功能。此輔助工作簿保持打開狀態,直到用戶窗體關閉。我提到這一點是因爲我不確定輔助工作簿是否會導致範圍對象出現問題。自從添加了向用戶窗體打開輔助工作簿功能後,我一直在從VBA收到麻煩。
Private Sub ComboBox1_Change()
Dim count As Integer
Dim i As Integer
count = Worksheets("Sheet7").Range("Range_Books").Rows.count
For i = 0 To count
If Worksheets("Sheet7").Range("Range_Books").Cells(i, 1) = ComboBox1.Value Then
ComboBox2.AddItem (Worksheets("Sheet7").Range("Range_Books").Cells(i, 2))
End If
Next i
End Sub
沒有0行,當你做'.cells(1,1)' – findwindow
你說range_books是在不同的工作簿時,您可能需要一個更引用添加到開始每個。您可能需要在工作表(「工作表7」)之前放置'Workbooks()...「您認爲活動的工作簿可能已失去焦點。 –
Scott實際上閱讀了XD – findwindow