VBA Excel:表格保护:UserInterFaceOnly消失了

时间:2016-07-13 13:56:04

标签: excel vba excel-vba excel-2010 password-protection

在VBA Excel中,如果我使用UserInterFaceOnly保护工作表:=关闭并再次打开文件后,选项再次打开文件,UserInterFaceOnly模式不活动,只有密码保护。

代码:ActiveSheet.Protect Password:="myPassword", UserInterfaceOnly:=True

为什么?

2 个答案:

答案 0 :(得分:5)

重新打开工作簿后,如果不重新应用UserInterfaceOnly:=True,则无法执行此操作。取自Excel的Vb protect方法参考:

  

如果在UserInterfaceOnly参数设置为true的情况下应用此方法然后保存工作簿,则在重新打开工作簿时将完全保护整个工作表(不仅仅是界面)。要在打开工作簿后重新启用用户界面保护,必须再次应用此方法并将UserInterfaceOnly设置为true

现在,如果您担心这需要太长时间(如您所说,15秒),请查看this Code Review答案。我已经在几本不同复杂程度的工作簿中完成了这项工作,在我尝试过的所有版本中,重新应用保护的时间都可以忽略不计,包括2010年。

答案 1 :(得分:0)

我不确定该问题的原因是什么,但您可以通过向Workbook_Open()事件添加保护代码来规避它,重置每个工作表保护以使每个<{1}}