Excel VBA Comboboxsearch工作表并在列表框中显示数据表
我有一个100 +工作表,在用户窗体中,我有一个combobox
search工作表和5个textboxes
,从combobox
textboxes
发送数据到任何选定的工作表。 现在,我想添加一个LISTBOX
,当我在combobox
select工作表时, LISTBOX
将显示选中工作表的数据(多column
和Row
),每次单击combobox
的工作表名称。 我有一个代码,但当打开工作表选项卡时,只有active sheet
显示在listbox
。
这是我的代码:
Private Sub ComboBox1_Change() With Me.ListBox1 .RowSource = "" .ColumnCount = 7 .ColumnWidths = "80;180;80;80;1;20" ListBox1.RowSource = Sheets("910-001").Range("C7:I1000").Address End With End Sub
Private Sub ComboBox1_Change() With Me.ListBox1 .RowSource = "" .ColumnCount = 7 .ColumnWidths = "80;180;80;80;1;20" .RowSource = Worksheets(ComboBox1.Value).Range("C7:I1000").Address End With End Sub
看起来问题是您正在使用文字值作为Sheets集合的索引。 这保证总是使用一张纸:“910-001”。
我对这个答案的build议是,你用一个ComboBox1的当前值的引用replace字面值。 然后,用户select的工作表数据将被用作ListBox1中的列表。
另请注意,我select使用Worksheets集合而不是Sheets集合。 这是更具体的(这通常是一件好事),因为Sheets集合包括图表,而Worksheets集合只包含工作表。 这使得调用稍微更高效,但更重要的是保证从集合中返回工作表。