Excel:保护密码与VBA密码不兼容?

时间:2017-06-07 18:58:21

标签: excel excel-vba password-protection vba

我知道在Excel中使用密码保护工作表的两种可能方法 -

  1. 手动密码保护
  2. 使用VBA进行密码保护
  3. 这是我难倒的地方。我使用VBA对表进行了密码保护,然后尝试使用VBA中使用的相同密码手动取消保护。但Excel会抛出一个错误,提示所提供的密码不正确。我也尝试了相反的方法 - 手动保护文件,然后尝试使用VBA取消保护,在代码中提供正确的密码;同样的错误。任何想法为什么会发生这种情况?

2 个答案:

答案 0 :(得分:0)

如果我正确理解你的问题,就会发生这种情况,因为每个密码都在保护不同的东西。它们不是同一件事。您可以拥有一个不受密码保护但VBA代码 密码保护的工作簿。

答案 1 :(得分:0)

经过一些分析后,我发现了我的代码中存在的问题 -

ActiveWorkbook.Protect Password = "xyz", Structure:=True, Windows:=False

密码选项分配了“=”符号而不是“:=”。此代码仍然保护工作表,但密码为空。当我使用类似的Unprotect代码时,

ActiveWorkbook.Unprotect Password = "xyz"

unprotect代码传递一个空密码。因此,如果我尝试手动密码“xyz”,则会抛出错误。

解决问题的正确代码是

ActiveWorkbook.Protect Password:= "xyz", Structure:=True, Windows:=False
ActiveWorkbook.Unprotect Password:= "xyz