Поле со списком, которое показывает только определенный лист? - PullRequest
0 голосов
/ 22 октября 2018

создать комбинированное окно, которое показывает только определенный лист вместо всех доступных листов, плюс возможность щелкать по листу, даже когда он скрыт?

использую формы управления 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 голосов
/ 22 октября 2018

При циклическом просмотре листов вы можете не добавлять ненужный лист в поле со списком

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...