Excel VBA Comboboxsearch工作表并在列表框中显示数据表

我有一个100 +工作表,在用户窗体中,我有一个comboboxsearch工作表和5个textboxes ,从combobox textboxes发送数据到任何选定的工作表。 现在,我想添加一个LISTBOX ,当我在comboboxselect工作表时, LISTBOX将显示选中工作表的数据(多columnRow ),每次单击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集合只包含工作表。 这使得调用稍微更高效,但更重要的是保证从集合中返回工作表。