Как вы вызываете несколько листов.Имена в VBA в операторе «IF?

#excel #vba #automation #private

#excel #vba #автоматизация #Частное

Вопрос:

В следующем коде каждый раз, когда я нажимаю на лист «Обложка», он скрывает ленту и увеличивает масштаб до определенного набора ячеек. Я хочу сохранить этот код, но также скрыть ленту для другого листа под названием «Домашняя страница». Я попытался выполнить оператор Or в операторе IF, но это не сработало. Любая помощь была бы отличной. : D

     If ActiveSheet.Name = "Cover" Then
        'Application.CommandBars.ExecuteMso "HideRibbon"
        Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)" 'code to hide ribbon.
        Range("C4:S51").Select
        ActiveWindow.Zoom = True
        Range("a5").Select
        Application.DisplayFormulaBar = False
    Else
        Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)" 'code to show ribbon.
    End If
End Sub

Private Sub Workbook_Deactivate()
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)" 'code to show ribbon.
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If Sh.Name = "Cover" Then
        'Application.CommandBars.ExecuteMso "HideRibbon"
        Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)" 'code to hide ribbon.
        Range("C4:S51").Select
        ActiveWindow.Zoom = True
        Range("a5").Select
        Application.DisplayFormulaBar = False
    Else
        Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)" 'code to show ribbon.
    End If
End Sub```
  

Комментарии:

1. Если ActiveSheet. Name = «Обложка» ИЛИ ActiveSheet. Name = «Домашняя страница» ИЛИ ActiveSheet. Name = «Cover3» Тогда

2. Используйте a Select Case для его очистки.

3. @Hooded 0ne Большое вам спасибо! Работает именно то, что мне нужно

4. @braX Что такое «Выбрать регистр» и как вы его используете?

Ответ №1:

Для использования Select Case (что является гораздо более чистым способом сделать это, делая его намного более читаемым)

 Select Case ActiveSheet.Name 
  Case "Cover", "Homepage", "Cover3"
    ' do the same thing for all 3 of these
  Case "AnotherName"
    ' do something
  Case Else
    ' do something else
    MsgBox "This sheet name is wrong!"
End Select