Как исключить определенные имена листов из цикла? - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть сценарий, в котором у меня есть книга Excel, в которой несколько листов.

Например:

Main 
Sheet1 
Sheet2
Sheet3
Sheet4
Sheet5
Sheet6
.
.
.
And so on 

В Combobox я хочу отобразить все имена листов, кроме этих имен листов : Main, Sheet3, Sheet5

Означает, что мой комбо-бокс должен иметь только имя листа ниже

Sheet1 
Sheet2
sheet4
sheet6
… and so on 

У меня есть код, который работает, когда я упоминаю только одно имя листа: Исключается «Главный».

Private Sub UserForm_Initialize()      
    Dim ws As Worksheet
    For Each ws In Worksheets
        If ws.Name <> "Main" Then
            Me.ComboBox1.AddItem ws.Name
        End If
    Next ws
End Sub

Когда я изменил и добавил несколько имен, код имени листа не работает, отображаются все имена листов.

Private Sub UserForm_Initialize()
    Dim ws As Worksheet
    For Each ws In Worksheets
        If ws.Name <> "Main , Sheet 3, Sheet 5" Then
            Me.ComboBoxpgname.AddItem ws.Name
        End If
    Next ws
End Sub

1 Ответ

1 голос
/ 10 февраля 2020

Вам необходимо проверить каждое имя самостоятельно

If ws.Name <> "Main" And ws.Name <> "Sheet 3" And ws.Name <> "Sheet 5" Then

, в противном случае вы проверяете один лист, который на самом деле называется Main , Sheet 3, Sheet 5.

Убедитесь, что имена рабочих листов указаны правильно. В вашем примере у некоторых есть пробелы, некоторые нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...