声明工作表密码

时间:2015-10-25 12:26:48

标签: excel vba excel-vba variables password-protection

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

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

当前代码:
保护工作表:

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

取消保护工作表:

ActiveSheet.Unprotect Password:="MyPassword"

2 个答案:

答案 0 :(得分:2)

  1. 在VB编辑器中,右键单击项目,然后插入>模块
  2. 称之为“常量”
  3. 插入以下声明:

    Public Const strPwd as String = "MyPassword"

  4. 键入常量是可选的,因此'as String'部分可以尝试。您可以在项目中以前使用过文字密码字符串的任何位置使用此常量。

    关于安全性,最好的办法是确保使用强密码保护VB项目本身。您可以在VB IDE>中浏览这里的选项。工具> VBAProject属性>保护标签。

答案 1 :(得分:1)

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

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

我希望这会有所帮助。