在VBA Excel中,如果我使用UserInterFaceOnly保护工作表:=关闭并再次打开文件后,选项再次打开文件,UserInterFaceOnly模式不活动,只有密码保护。
代码:ActiveSheet.Protect Password:="myPassword", UserInterfaceOnly:=True
为什么?
答案 0 :(得分:5)
重新打开工作簿后,如果不重新应用UserInterfaceOnly:=True
,则无法执行此操作。取自Excel的Vb protect方法参考:
如果在UserInterfaceOnly参数设置为true的情况下应用此方法然后保存工作簿,则在重新打开工作簿时将完全保护整个工作表(不仅仅是界面)。要在打开工作簿后重新启用用户界面保护,必须再次应用此方法并将UserInterfaceOnly设置为true
现在,如果您担心这需要太长时间(如您所说,15秒),请查看this Code Review答案。我已经在几本不同复杂程度的工作簿中完成了这项工作,在我尝试过的所有版本中,重新应用保护的时间都可以忽略不计,包括2010年。
答案 1 :(得分:0)
我不确定该问题的原因是什么,但您可以通过向Workbook_Open()
事件添加保护代码来规避它,重置每个工作表保护以使每个<{1}}