我有一个包含多个工作表和模块的更大的Excel文件。 在每个代码的代码中,我需要临时保护或取消保护受密码保护的表,以便更新某些受保护的部分。
到目前为止,我使用以下其中一行,但这意味着密码在整个代码中出现多次。 有没有办法我可以像一个全局变量一样声明这个密码,然后只需要在需要的时候引用这个变量,这样只要需要更改就必须更改一次? 此外,这会降低文件的安全性吗?
当前代码:
保护工作表:
ActiveSheet.Protect Password:="MyPassword", UserInterfaceOnly:=True
取消保护工作表:
ActiveSheet.Unprotect Password:="MyPassword"
答案 0 :(得分:2)
插入以下声明:
Public Const strPwd as String = "MyPassword"
键入常量是可选的,因此'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
我希望这会有所帮助。