【问题标题】:Different cell protection in the same Worksheet同一工作表中的不同细胞保护
【发布时间】:2012-11-30 09:44:32
【问题描述】:

在 Excel 工作表中,我想保护一个单元格 (A1) 不被编辑,另一个单元格 (B1) 不被格式化。这意味着用户:

  • 无法编辑 A1 的值
  • 可以编辑B1的值
  • 无法更改 B1 的格式

“保护工作表”选项允许保护整个工作表的所有锁定单元格,因此 A1 和 B1 在锁定时将具有相同的保护级别(防止格式化或编辑)。

有没有办法为特定的单元格或范围设置单独的保护,或者至少获得相同的行为?

附加信息:

  • 使用 VBA 的解决方案是可以的(虽然看起来 Worksheet.Protect 方法具有相同的限制...)
  • 单元格 A1(必须阻止编辑)可以防止格式化(没关系)。
  • 它应该适用于 Excel 2003。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    只要您没有在 vba 中检查或激活允许格式单元格,锁定就不会解决格式问题。因此,您可以简单地解锁 B1,并且您将无法编辑格式,只允许用户选择启用的锁定和解锁单元格。

    Sub protectorate()
    
        activesheet.Range("B1").Locked = False
    
        With ActiveSheet
            .Protect
        End With
    
    
    End Sub
    

    这将防止整个工作表的格式和值更改,除了 B1 的值,它仍然允许您编辑 B1 的值。

    【讨论】:

    • 是的!就是这么简单! :-) 但这也意味着我不能在同一张表内有不同的 Formatting 保护:可格式化或根本不可格式化。我希望我永远不需要它...@brettdj:是的,它也可以在不使用 VBA 的情况下为 Cell 设置 Locked 属性。
    • @brettdj 可以通过菜单完成。我想它的个人习惯是通过 vba 进行保护。我将通过菜单编辑更好的说明来执行此操作
    • @RustyGear 如果您希望能够编辑某些格式,您可以通过让它们格式化所有单元格来做到这一点,但不能选择锁定的单元格。这假设您将让它们格式化并更改相同单元格的值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    相关资源
    最近更新 更多