Показать видимые листы в поле со списком

Привет, у меня есть следующий код для отображения листов в поле со списком. Листы автоматически добавляются в список при его создании.

Я не хочу, чтобы скрытый лист был виден в раскрывающемся списке. Как мне это сделать?

Option Explicit

Private Sub ComboBox1_Change()
    If ComboBox1.ListIndex > -1 Then Sheets(ComboBox1.Text).Select
End Sub

Private Sub Combobox1_DropbuttonClick()
    Dim xSheet As Worksheet
    On Error Resume Next
    Application.screenupdateing = False
    Application.EnableEvents = False
    If ComboBox1.ListCount <> ThisWorkbook.Sheets.Count Then
        ComboBox1.Clear
        For Each xSheet In ThisWorkbook.Sheets
            ComboBox1.AddItem xSheet.Name
            Next xSheet
    End If
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub

Private Sub Combobx1_Gotfocus()
    If ComboBox1.ListCount <> 0 Then ComboBox1.DropDown
End Sub
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
2
0
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это то, что вы пытаетесь?

Private Sub Combobox1_DropbuttonClick()
    Dim xSheet As Worksheet

    '~~> Clear the bocmbobox
    ComboBox1.Clear

    '~~> Add the sheet again
    For Each xSheet In ThisWorkbook.Sheets
        '~~> Check if they are visible
        If xSheet.Visible = xlSheetVisible Then
            ComboBox1.AddItem xSheet.Name
        End If
    Next
End Sub

Другие вопросы по теме