Excel 2010 – 同一张表上的多种types的锁

所以我想创build一个处理用户input/输出任务的Excel工作表(我知道这是一个最好的,最坏的攻击)。 所以我希望用户能够编辑input单元格(只有input单元格),并select(但不编辑)输出。

示例:网格A1:C3。 A1:A3完全locking – 不可选。 B1:B3是可选的和可编辑的。 C1:C3可选,不可编辑。

这可能吗? 我的直觉告诉我不,但我想我会问。

可以使用工作表保护:

在单元格B1:B3的格式单元格对话框中,取消选中最后一个选项卡(保护)中的“受保护”checkbox。 然后保护工作表(右键单击底部的工作表选项 – >保护表)。 表格受到保护后,用户只能编辑那些不受保护的单元格。

关于selectC1:C3和不selectA1:A3 – 您可以允许/阻止用户在同一个表格保护对话框中select保护单元。 但是,这是一个表单宽度设置,所以默认情况下,您只能完全防止select所有保护单元或允许select所有单元。

如果您只想阻止selectA1:A3,因为您不希望用户看到公式,只需在格式单元格对话框中选中“隐藏”即可 – 这样用户就不会看到公式。

如果你真的需要在可选和不可选之间进行分离,可以分成两个工作表 – 或者使用一个小的VBAmacros。 为此,打开VBA编辑器(Alt + F11)并双击左上方的工作表。 在代码窗口中,input以下代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Me.ProtectContents And Intersect(Target, Range("B1:C3")) Is Nothing Then Range("B1").Select End Sub 

这样,每次select了所需范围之外的单元格时,都会selectB1