如何将特定工作表的列表添加到ComboBox VBA中的列表

时间:2014-03-09 23:57:38

标签: vba excel-vba excel

我找到了一种方法,可以将工作簿中的所有工作表添加到UserForm上的ComboBox列表中,这可以使用以下代码完成

Private Sub UserForm_Initialize()
    Dim ws As Worksheet
    For Each ws In Worksheets
        cmbSheet.AddItem ws.Name
    Next ws
End Sub

我的问题是我只需要添加一些特定的工作表而不是所有工作表。例如,我的用户将选择特定工作表,单击“继续”按钮应该最终在所选工作表上继续他/她的任务。我的工作簿包含几个工作表,其中一些用于输出数据(Reports),一些工作表包含所谓的模板,我希望我的用户(只有那些)能够从我上面讨论过的ComboBox中进行选择。

你能帮帮我吗?

2 个答案:

答案 0 :(得分:3)

Private Sub UserForm_Initialize()
    Dim ws As Worksheet
    For Each ws In Worksheets
        if ws.Name like "*Template" then cmbSheet.AddItem ws.Name
    Next ws
End Sub

答案 1 :(得分:2)

也许您可以使用工作表的命名约定?

如果您希望用户选择的报告在其名称中都包含 temmplate ,则可以执行以下操作:

Private Sub UserForm_Initialize()
    Dim ws As Worksheet
    For Each ws In Worksheets
        if instr(lcase(ws.name),"template")<>0 then
            cmbSheet.AddItem ws.Name
        end if
    Next ws
End Sub