仅显示某些表格的组合框?

时间:2018-10-22 07:35:15

标签: excel vba excel-vba

创建仅显示某些工作表而不显示所有可用工作表的组合框,以及即使隐藏也可以单击该工作表吗?

am使用表单控件comboBox,在付款代码中

Private Sub cbSheet_Change()

If cbSheet.Value <> "Select a Sheet" Then
Worksheets(cbSheet.Value).Select
End If
    cbSheet.Value = "Select a Sheet"
End Sub  


Private Sub Worksheet_Activate()

Dim Sh As Worksheet
Me.cbSheet.Clear
For Each Sh In ThisWorkbook.Worksheets
Me.cbSheet.AddItem Sh.Name
Next Sh
End Sub

在ThisWorkBook代码中

Private Sub Workbook_Open()

If ActiveSheet.Name = "Master Data" Then
Worksheets("Report").Select
Worksheets("Master Data").Select
End If
End Sub

1 个答案:

答案 0 :(得分:0)

在工作表中循环浏览时,可以确保不要在组合框中添加不需要的工作表

Private Sub ComboBox1_Change()
    Dim sh As Worksheet, s As String
    s = Me.ComboBox1
    If s = "" Then Exit Sub
    Set sh = Sheets(s)
    With sh
        If .Visible = False Then
            .Visible = True
        End If
        .Select
    End With
End Sub

Private Sub Worksheet_Activate()
    Dim sh As Worksheet
    Application.EnableEvents = False
    Me.ComboBox1.Clear
    For Each sh In Sheets
        If sh.Name <> "Sheet1" Then
            Me.ComboBox1.AddItem sh.Name
        End If
    Next sh
    Application.EnableEvents = True

End Sub

代码应添加隐藏的工作表名称

在梳理箱中添加特定的纸页

Private Sub Worksheet_Activate()
    Application.EnableEvents = False
    Me.ComboBox1.Clear

    With Me.ComboBox1
        .AddItem "Sheet2"
        .AddItem "Sheet4"
        .AddItem "Sheet5"
        .AddItem "Sheet6"
    End With

    Application.EnableEvents = True
End Sub