如何在组合框VBA中将特定工作表的列表添加到列表中

如何在组合框VBA中将特定工作表的列表添加到列表中,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 我的问题是,我只需要添加一些特定的工作表,而不是全部。例如,我的用户将选择特定的工作表,通过单击“

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

Private Sub UserForm_Initialize()
    Dim ws As Worksheet
    For Each ws In Worksheets
        cmbSheet.AddItem ws.Name
    Next ws
End Sub
我的问题是,我只需要添加一些特定的工作表,而不是全部。例如,我的用户将选择特定的工作表,通过单击“继续”按钮,应在所选工作表上结束,以继续他/她的任务。我的工作簿包含多个工作表,其中一些用于输出数据(报告),一些工作表包含所谓的模板,我希望我的用户(仅那些)能够从上面提到的组合框中选择这些模板


你们能帮帮我吗?

也许你们可以为工作表使用命名约定

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
如果希望用户选择的所有报告的名称中都有template一词,则可以执行以下操作:

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
Private子用户表单_Initialize()
将ws设置为工作表
对于工作表中的每个ws
如果instr(lcase(ws.name),“模板”)为0,则
cmbSheet.AddItem ws.Name
如果结束
下一个ws
端接头

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

如果希望用户选择的所有报告的名称中都有template一词,则可以执行以下操作:

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
Private子用户表单_Initialize()
将ws设置为工作表
对于工作表中的每个ws
如果instr(lcase(ws.name),“模板”)为0,则
cmbSheet.AddItem ws.Name
如果结束
下一个ws
端接头

谢谢,效果很好,一个问题,如何通过单击按钮进入组合框中选定的工作表,我应该在下面的私有子连续框中放置什么代码按钮单击()结束Sub@AlexB:您可以查看组合框
SelectedItem
属性。如果您需要更多帮助,请提出新问题。谢谢Philip,我会尝试一下,如果我需要更多帮助,我会提出新问题。谢谢,效果很好,有一个问题,如何通过单击按钮进入组合框中选定的工作表,我应该在以下私有子连续按钮中放置什么代码\u Click()终止Sub@AlexB:您可以查看组合框
SelectedItem
属性。如果你需要进一步的帮助,请问一个新问题。谢谢Philip,我会尝试一下,如果我需要更多的帮助,我会问一个新问题。