为 sheet 密码声明全局变量

Declare global variable for sheet password

我有一个更大的 Excel 文件,其中包含多个 sheet 和模块。 在这些代码中,我需要临时保护或取消保护密码保护 sheet 以更新某些受保护的部分。

到目前为止,我使用了以下有效的行之一,但这意味着密码在整个代码中出现了多次。 有没有一种方法可以像全局变量一样只声明一次这个密码,然后在需要的时候只引用这个变量,这样它只需要在需要更改时更改一次? 另外,这会降低文件的安全性吗?

当前代码:
保护一个sheet:

ActiveSheet.Protect Password:="MyPassword", UserInterfaceOnly:=True

取消保护 sheet:

ActiveSheet.Unprotect Password:="MyPassword"
  1. 在您的 VB 编辑器中,右键单击该项目,然后选择插入 > 模块
  2. 给它取个有用的名字,比如 'Constants'
  3. 插入以下语句:

    Public Const strPwd as String = "MyPassword"

输入常量是可选的,因此 'as String' 部分符合口味。您可以在项目中以前使用文字密码字符串的任何地方使用此常量。

关于安全性,最好的办法是确保您已使用强密码保护 VB 项目本身。您可以在 VB IDE > 工具 > VBAProject 属性 > 保护选项卡中探索选项。

您可以使用此代码作为示例

Option Explicit

Public Const g_strPASSWARD As String = "MyPassword"

' To Protect
Sub ProtectSheet(ByRef shToProtect As Worksheet)

    shToProtect.Protect Password:=g_strPASSWARD, UserInterfaceonly:=True

End Sub


'To Protect
Sub UnprotectSheet(ByRef shToUnprotect As Worksheet)

    shToUnprotect.Unprotect Password:=g_strPASSWARD

End Sub


' To Use
Sub MyTest()

    ProtectSheet ActiveSheet

    UnprotectSheet ActiveSheet

End Sub

希望对您有所帮助。