Excel 当工作簿结构的完整性被锁定时,VBA能否更改工作表的可见性?

Excel 当工作簿结构的完整性被锁定时,VBA能否更改工作表的可见性?,excel,vba,Excel,Vba,我想锁定工作簿的完整性,以便用户不能删除或移动工作表。但是我仍然希望能够使用VBA隐藏和取消隐藏图纸。有什么方法可以做到这一点吗?您可以解除工作簿的保护,完成工作,然后重新保护工作簿: ThisWorkbook.Unprotect Password:="your_password" '[... do your stuff...] ThisWorkbook.Protect Password:="your_password", Structure:=True 您可以取消对工作簿的保护,完成工作并重

我想锁定工作簿的完整性,以便用户不能删除或移动工作表。但是我仍然希望能够使用VBA隐藏和取消隐藏图纸。有什么方法可以做到这一点吗?

您可以解除工作簿的保护,完成工作,然后重新保护工作簿:

ThisWorkbook.Unprotect Password:="your_password"
'[... do your stuff...]
ThisWorkbook.Protect Password:="your_password", Structure:=True

您可以取消对工作簿的保护,完成工作并重新保护工作簿:

ThisWorkbook.Unprotect Password:="your_password"
'[... do your stuff...]
ThisWorkbook.Protect Password:="your_password", Structure:=True

设置保护时使用此代码

Sheets("Sheet1").Protect Password:="myPassword", UserInterfaceOnly:=True

其效果是,用户无法更改您不允许的任何内容(上面的代码可能比我在这里显示的内容更多),而UserInterfaceOnly属性允许您的代码在不存在保护的情况下运行。

设置保护时使用此代码

Sheets("Sheet1").Protect Password:="myPassword", UserInterfaceOnly:=True
其效果是,用户不能更改您不允许的任何内容(上面的代码可能比我在这里展示的内容更多),而UserInterfaceOnly属性允许您的代码充当不存在保护的角色