如何锁定Excel表格(超级表)中的公式

20 篇文章 2 订阅
19 篇文章 0 订阅

实例需求:Excel的格式化表格(有时被称为超级表[非官方名称],通过插入>表格创建,下文简称为表格)是具备很多实用的功能,例如自动扩展表格并应用原格式和公式等等。如果表格中使用了公式列,那么有些小白用户可能会不小心修改某个单元格的公式,这种问题查找起来也很麻烦。有的同学可能说保护工作表(表格中的公式列)就可以了,其实不然,保护工作表虽然避免了用户意外修改公式,但是表格的自动扩展等功能也失效了。

是否可以即不牺牲表格的易用性,又可以实现保护表格中的公式呢?效果如下图所示,B列和D列为公式列,无论如何如何修改公式,都能被自动恢复。

请添加图片描述

Private Sub Worksheet_Change(ByVal Target As Range)
    With Target
        Dim c As Range
        Set c = Application.Intersect(Target, Me.ListObjects(1).DataBodyRange)
        If c Is Nothing Then Exit Sub
        If .Columns.Count = 1 And (.Column = 2 Or .Column = 4) Then
            With Application
                .EnableEvents = False
                .Undo
                .EnableEvents = True
            End With
        End If
    End With
End Sub

【代码解析】
第2行代码判断发生变化的单元格(Target)是否位于表格之中。
如果不在表格中,第5行代码退出代码执行。
第6行代码判断是否为单个单元格,并且位于B列或者D列。
第8行代码禁用系统事件激活,第10行代码进行恢复。
第9行代码取消用户所在的修改。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值