分享

Excel 保护带有公式的单元格

 L罗乐 2017-02-19

4966 leroy LV4

2010-8-26 14:38
昨天,
有人在QQ群里面希望能够对带有公式的单元格进行保护,
防止人为修改,
根据5楼及6楼老师的帮助,已解决问题。
得到如下代码:loveliness:
引用: Sub mima2()
    Dim sht As Worksheet, rng As Range
    On Error Resume Next
    For Each sht In ThisWorkbook.Worksheets
        With sht
            .Unprotect Password:='aaa123'    '撤销工作表保护
            .Range('A:IV').Locked = False    '取消所有单元格格式》保护 中的锁定选项
            With .UsedRange.SpecialCells(xlCellTypeFormulas)  '定位所有含有公式的单元格
                .Locked = True               '选中所有单元格格式》保护 中的锁定选项
                .FormulaHidden = True        '隐藏公式
            End With
            .Protect Password:='aaa123'      '保护工作表,并将密码设置为aaa123
        End With
    Next
End Sub

[ 本帖最后由 leroy 于 2010-8-26 18:30 编辑 ]
分享到新浪微博
只看楼主 | 倒序浏览

有 15 条回复

2楼 nt_ljm LV3

2010-8-26 14:49
保护带有公式的单元格,可以直接设置单元格格式。

3楼 yvonne_xu LV2

2010-8-26 14:50
这个应该可以不用编码也可以吧,excel有个“保护”功能的

4楼 leroy 楼主

2010-8-26 14:55
如果带有公式的单元格区域不固定,
比如带有公式的单元格区域每天都增加,
那么执行VBA代码会方便一些。

自己感觉第二段代码还是很实用的,
效率也够高,
所以不想放弃。。。

5楼 hanter007 LV5

2010-8-26 14:55
加一句 On Error Resume Next 应该就可以了.

6楼 zjdh LV6

2010-8-26 14:55
那就加一句容错语句:
Sub mima2()
    Dim sht As Worksheet
    Dim rng As Range
    On Error Resume Next
    For Each sht In ThisWorkbook.Worksheets
        With sht
            .Unprotect Password:='aaa123'
            .Range('A:IV').Locked = False
             .Cells.SpecialCells(xlCellTypeFormulas, 23).Locked = True
            .Protect Password:='aaa123'
        End With
    Next
End Sub

7楼 leroy 楼主

2010-8-26 15:00
谢谢楼上的二位老师,
现在终于理解 On Error Resume Next 的用法了
[em01] [em01] [em01]

8楼 chenxf1319 LV2

2010-8-26 15:01
好复杂。。。。。。。。。。。。。简单就好嘛。

9楼 ArnoldTsay LV2

2011-7-5 05:18
保護完的部分無法選取??

有何方法解否??

我知道取消保護便可 =..=

但如何用 VB 既保護後,又可以選取呢??

如此才能選取欲列印的範圍阿!

[ 本帖最后由 ArnoldTsay 于 2011-7-5 05:20 编辑 ]

10楼 zjdh LV6

2011-7-5 14:50
就用这个代码:
Sub mima2()
    Dim sht As Worksheet
    Dim rng As Range
    On Error Resume Next
    For Each sht In ThisWorkbook.Worksheets
        With sht
            .Unprotect Password:='aaa123'
            .Range('A:IV').Locked = False
            .Cells.SpecialCells(xlCellTypeFormulas, 23).Locked = True
            .EnableSelection = xlNoRestrictions  '选取锁定单元
       .Protect Password:='aaa123'
        End With
    Next
End Sub

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多