录入数据后单元格自动保护
下面的代码可以使用户在单元格录入数据后自动对已录入数据单元格进行保护,防止修改数据。
#001 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
#002 On Error Resume Next
#003 S Password:="12345"
#004 If Target.Value <> "" Then
#005 Target.Locked = True
#006 S Password:="12345"
#007 End If
#008 End Sub
代码解析:
工作表的SelectionChange事件,在单元格录入数据后自动对已录入数据单元格进行保护。
第3行代码使用Unprotect方法取消工作表的保护。应用于Worksheet 对象的Unprotect方法取消工作表的保护,如果工作表不是受保护的,则此方法不起作用,语法如下:
ex(Password)
参数expression是必需的,该表达式返回一个Worksheet 对象。
参数Password是可选的,指定用于解除工作表的保护的密码,此密码是区分大小写的。
第4、5行代码单元格录入数据后将Locked属性设置为True。Locked属性应用于Range对象时,如果Range对象被锁定,则该值为True,当工作表有保护时Range对象不可被修改。
第6行代码使用Protect方法保护工作表。应用于Worksheet对象的Protect方法保护工作表使其不至被修改,语法如下:
ex(Password, DrawingObjects, Contents, Scenarios, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables)
其中参数expression是必需的,该表达式返回一个Worksheet对象。
参数Password是可选的,为一个字符串,该字符串为工作表指定区分大小写的密码。
其他参数都是可选参数,其功能等同于如图 19‑1所示的工作表保护对话框中的各项选项,具体请参阅VBA帮助。
图 19‑1 工作表保护对话框