Excel为您的工作表提供保护,这意味着您可以保护单元格的内容,因此无法更改它们。 _ExcelTips_的其他问题中已经讨论了如何使用此保护。

如果要允许编辑单元格,但又希望有人在单元格中输入信息后立即对其进行保护,该怎么办?例如,您具有用户可以在其中输入信息的单元格,但是一旦输入,您就不希望他们具有更改他们输入的信息的能力。

Excel中没有固有的功能来保护输入后的输入,但是您可以通过使用宏来创建该功能。以下宏是如何执行此操作的示例:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim MyRange As Range

Set MyRange = Intersect(Range("A1:D100"), Target)

If Not MyRange Is Nothing Then         Sheets("Sheet1").Unprotect password:="hello"

MyRange.Locked = True         Sheets("Sheet1").Protect password:="hello"

End If End Sub

该宏假定工作表已经受到保护,并且希望输入的所有单元格都已解锁。

它所做的是检查输入是否在正确的单元格范围内完成,在这种情况下,此范围在A1:D100范围内。如果是这样,则工作表将不受保护,刚刚输入信息的单元格将被锁定,工作表将再次受到保护。

如果您在自己的工作簿中使用此方法,则需要修改潜在的输入范围,并且需要更改用于取消保护和保护工作表的密码。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2034)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: