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

时间:2012-11-30 09:44:33

标签: excel excel-vba vba

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

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

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

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

其他信息:

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

1 个答案:

答案 0 :(得分:2)

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

Sub protectorate()

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

    With ActiveSheet
        .Protect
    End With


End Sub

这样可以防止整个工作表上的格式和值更改除了B1的值,它仍然可以让您编辑B1的值。