【问题标题】:Excel 2013 VBA wsheet.protect UserInterfaceOnly:=TrueExcel 2013 VBA worksheet.protect UserInterfaceOnly:=True
【发布时间】: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

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    见:http://www.cpearson.com/excel/Protection.aspx

    当您关闭 UserInterfaceOnly 设置时,不会保存 工作簿,因此您需要在打开工作簿时进行设置。最好的 可以在 Workbook_Open 事件过程中执行此操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-19
      • 1970-01-01
      • 2021-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-07
      • 1970-01-01
      相关资源
      最近更新 更多