Привет, у меня есть следующий код для отображения листов в поле со списком. Листы автоматически добавляются в список при его создании.
Я не хочу, чтобы скрытый лист был виден в раскрывающемся списке. Как мне это сделать?
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


Это то, что вы пытаетесь?
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