我有100多个工作表,在用户表单中,我有combobox
搜索工作表,5 textboxes
将数据发送到combobox
的任何选定工作表。现在我想添加LISTBOX
,当我在combobox
中选择工作表时,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
答案 0 :(得分:1)
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"。
我对这个答案的建议是你用对ComboBox1当前值的引用替换文字值。然后,用户选择的工作表数据将用作ListBox1中的列表。
另请注意,我选择使用Worksheets集合而不是Sheets集合。这是更具体的(这通常是一件好事),因为Sheets集合包括图表工作表,而Worksheets集合仅包含工作表。这使得调用稍微有效,但更重要的是保证从集合中返回工作表。