我一直在尝试在Excel应用ICT项目的excel VBA中创建这种密码保护类型的东西。所以我创建了这个模块来保护工作簿中的所有工作表:
Public Sub Auto_Open()
Dim ws As Worksheet
Dim psword As String
psword = "Unit 12"
For Each ws In Worksheets
ws.Protect Password:=psword
Next ws
End Sub
现在我要做的事情是,每当有人打开用户表单时,会出现一个输入框,询问密码,如果有人输入了无效的密码,则会出现一个消息框。它将是这样的:
Private Sub UserForm_Activate()
If ActiveSheet.ProtectContents = True Then
x = InputBox("Please type in the password", "Password")
If x = psword Then
Call Module1.Sheets_unlock
Else
Msgbox("The password is invalid")
End
End If
End If
现在问题是UserForm_Activate()子中的密码更改为空。我已经尝试将公共psword作为字符串,但它不起作用。我该怎么办?
答案 0 :(得分:0)
你 Dim 的地方。
将标准模块中的psim调整为模块中所有其他子项的上方,如:
Public psword As String