如何使变量的值从模块保持为字符串不变



我一直在尝试在 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 作为字符串,但它不起作用。我能做什么?

它在哪里你把它变暗

将标准模块中的 psword 调暗到模块中所有其他子模块的上方,例如:

Public psword As String

相关内容

  • 没有找到相关文章

最新更新