为 sheet 密码声明全局变量
Declare global variable for sheet password
我有一个更大的 Excel 文件,其中包含多个 sheet 和模块。
在这些代码中,我需要临时保护或取消保护密码保护 sheet 以更新某些受保护的部分。
到目前为止,我使用了以下有效的行之一,但这意味着密码在整个代码中出现了多次。
有没有一种方法可以像全局变量一样只声明一次这个密码,然后在需要的时候只引用这个变量,这样它只需要在需要更改时更改一次?
另外,这会降低文件的安全性吗?
当前代码:
保护一个sheet:
ActiveSheet.Protect Password:="MyPassword", UserInterfaceOnly:=True
取消保护 sheet:
ActiveSheet.Unprotect Password:="MyPassword"
- 在您的 VB 编辑器中,右键单击该项目,然后选择插入 > 模块
- 给它取个有用的名字,比如 'Constants'
插入以下语句:
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
希望对您有所帮助。
我有一个更大的 Excel 文件,其中包含多个 sheet 和模块。 在这些代码中,我需要临时保护或取消保护密码保护 sheet 以更新某些受保护的部分。
到目前为止,我使用了以下有效的行之一,但这意味着密码在整个代码中出现了多次。 有没有一种方法可以像全局变量一样只声明一次这个密码,然后在需要的时候只引用这个变量,这样它只需要在需要更改时更改一次? 另外,这会降低文件的安全性吗?
当前代码:
保护一个sheet:
ActiveSheet.Protect Password:="MyPassword", UserInterfaceOnly:=True
取消保护 sheet:
ActiveSheet.Unprotect Password:="MyPassword"
- 在您的 VB 编辑器中,右键单击该项目,然后选择插入 > 模块
- 给它取个有用的名字,比如 'Constants'
插入以下语句:
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
希望对您有所帮助。