【发布时间】:2016-09-21 23:10:31
【问题描述】:
我曾经在启用宏的模板上运行了一个名为SetProtection() 的简单子程序。该工作簿有 9 个选项卡。我运行代码以便UserInterfaceOnly:=True。它在模板打开时工作正常。我保存并关闭模板。在 Windows 文件夹视图中,我双击模板文件,以便 excel 打开一个新工作簿。新工作簿忘记了 UserInterfaceOnly:=True 设置。当 vba 尝试更改另一个被锁定的单元格的值时,当单元格的值发生更改时,我收到错误。
假设我编辑了模板文件并将 sav 作为启用宏的工作簿。如果我编辑工作簿,UserInterfaceOnly:=True 设置将继续工作。 VBA 可以更改锁定的单元格。
UserInterfaceOnly:=True 不应该通过 excel 模板文件传递吗?
Sub SetProtection()
Dim wSheet As Worksheet
Dim Pwd As String
Pwd = InputBox("Enter your password to protect all worksheets", "Password Input")
For Each wSheet In Worksheets
wSheet.Protect Password:=Pwd, UserInterfaceOnly:=True
Next wSheet
End Sub
【问题讨论】: