Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 工作簿。通过切换保护来保护bug_Excel_Vba_Protection - Fatal编程技术网

Excel 工作簿。通过切换保护来保护bug

Excel 工作簿。通过切换保护来保护bug,excel,vba,protection,Excel,Vba,Protection,在VBA中调用Thisworkbook.Protect时,工作簿的保护实际上是从当前工作簿的保护状态切换到当前工作簿的保护状态,而不仅仅是保护工作簿 但是,取消保护不会执行此操作 有人知道为什么会出现这种情况,或者如何避免这种情况吗?不确定这是出于设计还是错误。。。如果您提供参数,它可以正常工作: ActiveWorkbook.Protect ,true,true 或 无论你需要/想要什么。这样它不会关闭保护,只会打开 要关闭保护,您可以使用此选项(假设您只打开了结构保护): 参数包括: .

在VBA中调用Thisworkbook.Protect时,工作簿的保护实际上是从当前工作簿的保护状态切换到当前工作簿的保护状态,而不仅仅是保护工作簿

但是,取消保护不会执行此操作


有人知道为什么会出现这种情况,或者如何避免这种情况吗?

不确定这是出于设计还是错误。。。如果您提供参数,它可以正常工作:

ActiveWorkbook.Protect ,true,true

无论你需要/想要什么。这样它不会关闭保护,只会打开

要关闭保护,您可以使用此选项(假设您只打开了结构保护):


参数包括:

.Protect(Password, Structure, Windows)

我从来没有注意到这一点。这在我的电脑上的Excel 2016中是真实的。如果Thisworkbook.ProtectStructure或Thisworkbook.ProtectWindows,则可以使用
进行测试。另外,您是否看过
UserInterfaceOnly
,它可以消除在代码中保护和取消保护的必要性?UserInterfaceOnly对我不起作用,因为我有一些代码修改仍然需要取消保护的内容。我做了一些研究,这似乎是一个已知的问题。不过,检查保护状态确实有效。
ActiveWorkbook.Protect Structure:= false
.Protect(Password, Structure, Windows)