我有一些vba代码,其设计是从其他子例程调用以锁定电子表格,除非工作表名称等于我在工作表顶部定义的一组字符串。
此if语句未触发为true。我在这里做什么错了?
代码
./getPIVPub.sh
答案 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
就能做到,那么这可以防止将来造成混乱。