分享

Excel-VBA一键设置保护工作表所有公式不被修改

 L罗乐 2017-09-30

应用场景

一键设置保护工作表所有公式不被修改


知识要点

1:利用specialcells方法定位公式区,将其隐藏和锁定属性设为True,然后保护工作表

2:Worksheet.ProtectContents 属性  果工作表内容是受保护的,则为 True。此属性保护单独的单元格

3:Range.Locked 属性  返回或设置一个 Variant 值,它指明对象是否已被锁定

4:Range.FormulaHidden 属性  返回或设置一个 Variant 值,它指明在工作表处于保护状态时是否隐藏公式。

5:Worksheet.Protect 方法  保护工作表使其不能被修改


Sub 保护公式不背修改()

    If ActiveSheet.ProtectContents = True Then MsgBox '当前工作表已保护,程序无法执行!', 64, '提示'

    On Error Resume Next

    Cells.Locked = False  '取消所有单元格的锁定属性

    Cells.FormulaHidden = False '将隐藏公式也取消

    With Cells.SpecialCells(xlCellTypeFormulas, 23) '对公式区域进行操作

        If Err.Number = 1004 Then MsgBox '当前表不存在公式': Exit Sub

        '如果错误提示,并退出程序

        .Locked = True '锁定所有公式区

        .FormulaHidden = True '隐藏所有公式区

        '保护工作表(允许用户插入行、设置格式、删除行列、编辑对象等)

        ActiveSheet.Protect Password:='', DrawingObjects:=False, contents:=True, Scenarios:=False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _

                            AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _

                            AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True

    End With

End Sub


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多