我知道两种可能的密码保护方法-在Excel中保护表格-
这就是我困惑的地方。我使用VBA对工作表进行密码保护,然后尝试用VBA中使用的相同密码手动解除保护。但是Excel会抛出一个错误,说明提供的密码不正确。我尝试了相反的方法--手动保护文件,然后尝试使用VBA解除保护,在代码中提供正确的密码;同样的错误。知道为什么会这样吗?
发布于 2017-06-07 22:16:13
经过一些分析,我发现了我的代码中有什么问题-
ActiveWorkbook.Protect Password = "xyz", Structure:=True, Windows:=False
密码选项被指定为"=“符号,而不是":=”。此代码仍然保护工作表,但使用的是空密码。当我使用类似的非保护代码时,
ActiveWorkbook.Unprotect Password = "xyz"
取消保护代码正在传递一个空密码。因此,如果我尝试手动密码"xyz“,它会抛出一个错误。
解决这个问题的正确代码是
ActiveWorkbook.Protect Password:= "xyz", Structure:=True, Windows:=False
ActiveWorkbook.Unprotect Password:= "xyz
发布于 2017-06-07 19:13:19
如果我正确理解你的问题,它的发生是因为每个密码是保护不同的东西。它们不是一回事。您可以使用不受密码保护的工作簿,但是VBA代码是受密码保护的。
https://stackoverflow.com/questions/44420753
复制相似问题