Excel VBA Combobox 搜索工作表并在列表框中显示数据表

标签 excel vba

我有一个 100 多个工作表,在用户表单中,我有一个 combobox搜索工作表和 5 textboxes将数据从 combobox 发送到任何选定的工作表.现在我想添加一个 LISTBOX当我在 combobox 中选择工作表时, LISTBOX每次单击 column 中的工作表名称时,将显示所选工作表的数据(多个 Rowcombobox ) .我有一个代码,但只有 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”。

我对这个答案的建议是,您将文字值替换为对 ComboBox1 的当前值的引用。然后,用户选择的工作表数据将用作 ListBox1 中的列表。

另请注意,我选择使用 Worksheets 集合而不是 Sheets 集合。这是更具体的(这通常是一件好事),因为 Sheets 集合包括图表,而 Worksheets 集合仅包含工作表。这使调用稍微更有效率,但更重要的是保证从集合中返回工作表。

关于Excel VBA Combobox 搜索工作表并在列表框中显示数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31483396/

相关文章:

excel - 使用 VBA 的 Z 因子迭代

excel - 我们可以在 Excel 中的 IF 函数的 "value_if_true"字段中放置一个公式吗?

python - 在单个数据框中合并具有相同索引的多行?

vba - 单元格验证 - 检查日期 [Excel VBA]

vba - 使用 EntryID 引用时的 MailItem.SaveAs

html - VBA中电子邮件正文的字体样式

arrays - 在 VBA 中重新调光数组

vba - 在 Excel 2010 中查找和替换而不丢失单元格格式 - 无法在包含 255 个字符的单元格上运行

c# - EXCEL XML 格式不是真的标准吗?

excel - Excel数据验证(文本长度)