使用密码取消保护表,而不在宏中显示密码

Loc*_*ock 8 excel vba excel-2007 excel-vba

我最近开始在Excel中编写一些Macro.我有一个受保护的工作表,以及一些允许用户在电子表格中的某个点添加/删除列/行的按钮.

我目前取消保护工作表,执行功能,然后保护工作表.

问题是,受保护的表格密码是宏中的纯文本,供任何好奇的眼睛看到.

如何在工作表上设置密码以保护它,但同时允许我的宏在执行其功能时取消保护电子表格,然后重新保护它,而不在宏中键入明文密码?

chr*_*sen 15

两种选择:

  1. 密码保护VBA.(虽然VBA保护远远不能抵御恶意攻击,但它并不比表单保护的安全性差)
  2. 如果使用VBA设置工作表保护,则可以指定UserInterfaceOnly:=True.

    sh.Protect Password:="Password", UserInterfaceOnly:=True

    一旦以这种方式设置,VBA代码就可以在不提供密码的情况下修改工作表.由于密码必须首先提供一次才能应用保护,因此请从单独的工作簿中运行此代码,或者添加自己保留的密码.

  • + 1我也避免使用文字密码.并不是说它带来了太大的不同.可以使用一些独特的密码生成器.这是一个非常基本的例子`ActiveSheet.Protect Application.WorksheetFunction.Pi`有时我使用随机密码生成器,只有vba代码可以取消保护. (3认同)