我找到了一种方法,可以将工作簿中的所有工作表添加到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中进行选择。
你能帮帮我吗?
答案 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