【问题标题】:How do you call multiple Sheet.Names in VBA in an "IF statement?如何在“IF 语句”中调用 VBA 中的多个 Sheet.Names?
【发布时间】:2020-11-02 20:06:20
【问题描述】:

在下面的代码中,每次单击工作表“封面”时,它都会隐藏功能区并放大一组特定的单元格。我想保留此代码,但也隐藏另一个名为“主页”的工作表的功能区。我试图在 IF 语句中做一个 Or 语句,但这不起作用。任何帮助都会很棒。 :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```

【问题讨论】:

  • 如果 ActiveSheet.Name = "Cover" OR ActiveSheet.Name = "Homepage" OR ActiveSheet.Name = "Cover3" 那么
  • 使用Select Case 清理它。
  • @Hooded 0ne 非常感谢!完全符合我的需要
  • @braX 什么是“Select Case”以及如何使用它?

标签: excel vba automation private


【解决方案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

【讨论】:

    猜你喜欢
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 2014-03-12
    • 2017-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多