我知道在Excel中使用密码保护工作表的两种可能方法 -
这是我难倒的地方。我使用VBA对表进行了密码保护,然后尝试使用VBA中使用的相同密码手动取消保护。但Excel会抛出一个错误,提示所提供的密码不正确。我也尝试了相反的方法 - 手动保护文件,然后尝试使用VBA取消保护,在代码中提供正确的密码;同样的错误。任何想法为什么会发生这种情况?
答案 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