我试图在书的每个页面添加一个密码,所以当我点击一个页面标签时,我会得到一个输入框,询问它的通过。每个页面都有唯一的密码。我该怎么做?我尝试在vba ThisWorkbook上编写这段代码,但它没有做任何事情:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim MySheets As String, Response As String
MySheet = "Sheet1"
If ActiveSheet.Name = inicio Then
ActiveSheet.Visible = False
Response = InputBox("Enter password to view sheet")
If Response = "abc" Then
Sheets(MySheet).Visible = True
Application.EnableEvents = False
Sheets(MySheet).Select
Application.EnableEvents = True
End If
End If
Sheets(MySheet).Visible = True
End Sub
提前致谢!
答案 0 :(得分:1)
使用Option Explicit
。然后您会注意到,inicio
是变量,而不是名称。通常,如果您编写"inicio"
,则代码应该有效。
或类似的东西,如果你忽略inicio
并使用你已声明的MySheet
字符串变量:
Option Explicit
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim MySheet As String, Response As String
MySheet = "Sheet1"
If ActiveSheet.Name = MySheet Then
ActiveSheet.Visible = False
Response = InputBox("Enter password to view sheet")
If Response = "abc" Then
Sheets(MySheet).Visible = True
Application.EnableEvents = False
Sheets(MySheet).Select
Application.EnableEvents = True
End If
End If
End Sub
或者这样,如果您想要使用Sh
参数而不是ActiveSheet
来做得更小一点:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim mySheet As String: mySheet = "Sheet1"
Dim response As String
If Sh.Name = mySheet Then
response = InputBox("Enter password to view sheet")
Sh.Visible = CBool(response = "abc")
End If
End Sub