同一工作表中的不同单元保护

Rus*_*ear 7 excel vba excel-vba

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

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

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

有没有办法为特定细胞或范围设置个体保护,或者至少获得相同的行为?

附加信息:

  • 使用VBA的解决方案是可以的(虽然看起来Worksheet.Protect方法具有相同的限制......)
  • 单元格A1(必须防止编辑)可以防止格式化或不格式化(无关紧要).
  • 它应该与Excel 2003一起使用.

sco*_*ott 2

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

Sub protectorate()

    activesheet.Range("B1").Locked = False

    With ActiveSheet
        .Protect
    End With


End Sub
Run Code Online (Sandbox Code Playgroud)

这将防止整个工作表上的格式设置和值更改(B1 的值除外),但它仍然允许您编辑 B1 的值。