限制但不会完全阻止用户编辑工作表的能力

时间:2017-11-30 18:37:19

标签: excel vba excel-vba

我有一个在excel电子表格中构建的财务模型,需要在许多用户使用它时锁定,但鉴于贷款决策是基于输出,用户更改/编辑单元格的能力应该受到限制。

电子表格中有12张纸,每张纸都有一些分配给按钮的宏。鉴于每张纸上按钮上出现的文字都是从指定的语言标签中选取的。

锁定工作表不受编辑的vba代码位于每个工作表的后面,而不是从覆盖所有工作表的模块运行。这是因为需要解锁每个工作表,以便从语言选项卡中为按钮分配名称。

大多数细胞都被锁定,但是每张纸上需要填充并因此解锁的细胞数量有限。

我想让用户能够:

  1. 更改单元格的宽度(但不一定是高度),
  2. 分组/取消组合,隐藏/取消隐藏,复制/粘贴仅限值(不格式化或其他任何内容)。
  3. 不应允许用户做任何其他事情,特别是他们不应该删除/重命名/创建工作表。
  4. 我在每张表后面都有以下vba代码(有一些无关紧要的更改),但它不符合上述要求。如何修改此vba代码以实现上述1),2)和3)?

    Private Sub Worksheet_Activate()
    ActiveSheet.Unprotect "Password"
    ActiveSheet.Shapes.Range(Array("Rounded Rectangle 1")).TextFrame.Characters.Text = Sheet12.Range("$B$142")
    ActiveSheet.Protect "Password", DrawingObjects:=True, _
                    Contents:=True, _
                    Scenarios:=True, _
                    AllowFormattingColumns:=True, _
                    AllowFormattingRows:=True
    End Sub
    

0 个答案:

没有答案