VBA-如果使用sheet.name的语句不符合应有的方式

时间:2018-07-23 01:23:39

标签: excel vba excel-vba

我有一些vba代码,其设计是从其他子例程调用以锁定电子表格,除非工作表名称等于我在工作表顶部定义的一组字符串。

此if语句未触发为true。我在这里做什么错了?

代码

./getPIVPub.sh

1 个答案:

答案 0 :(得分:2)

我不确定是否出了什么问题,但是这段代码能满足您的需求吗?

Public Sub Sheetlock()

  Dim WB As Workbook
  Dim Sheet As Worksheet

  Set WB = ThisWorkbook

  For Each Sheet In WB.Worksheets
    If Sheet.Name <> NonHideSheet1 And _
       Sheet.Name <> NonHideSheet2 And _
       Sheet.Name <> NonHideSheet3 And _
       Sheet.Name <> NonHideSheet4 And _
       Sheet.Name <> NonHideSheet5 Then

      Sheet.Visible = False
      Sheet.Protect (Password)
    Else
      Sheet.Visible = True
    End If
  Next Sheet
End Sub

我的猜测是goto是元凶。我总是尽量避免使用它们-并不是说它们总是很糟糕,但是总的来说,如果您不使用goto就能做到,那么这可以防止将来造成混乱。