Excel:保护密码与 VBA 密码不兼容?
Excel: Protect password not compatible with VBA password?
我知道在 Excel -
中使用密码保护 sheet 的 2 种可能方法
- 手动密码保护
- 密码保护使用 VBA
这就是我难过的地方。我使用 VBA 对 sheet 进行了密码保护,然后尝试使用 VBA 中使用的相同密码手动取消保护。但是 Excel 抛出一个错误,说提供的密码不正确。我也尝试了相反的方法——手动保护文件,然后尝试使用 VBA 取消保护,在代码中提供正确的密码;同样的错误。知道为什么会这样吗?
如果我没有正确理解你的问题,那是因为每个密码保护的内容不同。它们不是同一件事。您可以有一个不受密码保护的工作簿,但 VBA 代码 受 密码保护。
经过一些分析,我弄清楚了我的代码中的问题 -
ActiveWorkbook.Protect Password = "xyz", Structure:=True, Windows:=False
密码选项分配有“=”符号而不是“:=”。此代码仍然保护 sheet 但密码为空。当我使用类似的取消保护代码时,
ActiveWorkbook.Unprotect Password = "xyz"
解除保护代码传递的是空密码。因此,如果我尝试使用 "xyz" 的手动密码,它会引发错误。
解决问题的正确代码是
ActiveWorkbook.Protect Password:= "xyz", Structure:=True, Windows:=False
ActiveWorkbook.Unprotect Password:= "xyz
我知道在 Excel -
中使用密码保护 sheet 的 2 种可能方法- 手动密码保护
- 密码保护使用 VBA
这就是我难过的地方。我使用 VBA 对 sheet 进行了密码保护,然后尝试使用 VBA 中使用的相同密码手动取消保护。但是 Excel 抛出一个错误,说提供的密码不正确。我也尝试了相反的方法——手动保护文件,然后尝试使用 VBA 取消保护,在代码中提供正确的密码;同样的错误。知道为什么会这样吗?
如果我没有正确理解你的问题,那是因为每个密码保护的内容不同。它们不是同一件事。您可以有一个不受密码保护的工作簿,但 VBA 代码 受 密码保护。
经过一些分析,我弄清楚了我的代码中的问题 -
ActiveWorkbook.Protect Password = "xyz", Structure:=True, Windows:=False
密码选项分配有“=”符号而不是“:=”。此代码仍然保护 sheet 但密码为空。当我使用类似的取消保护代码时,
ActiveWorkbook.Unprotect Password = "xyz"
解除保护代码传递的是空密码。因此,如果我尝试使用 "xyz" 的手动密码,它会引发错误。
解决问题的正确代码是
ActiveWorkbook.Protect Password:= "xyz", Structure:=True, Windows:=False
ActiveWorkbook.Unprotect Password:= "xyz