www.txtzm.com:Excel如何实现单元格输入数据后就不能修改
来源:百度文库 编辑:中财网 时间:2024/05/06 02:54:45
要求在一张EXCEL工作表中,空白的单元格能够输入数据,但是输入任何数值或公式以后就不能修改,除非提供正确的密码。
右键点击需要实现此功能的工作表标签名,按“查看代码”(或者按ALT+F11进入VBA编辑器).
1、双击工程窗口中的工作表名字如“Sheet1”,在其代码窗口中输入以下代码(全部蓝色字体):
'作者:QSDDZ 2009-11-19 QQ:380725227
Private Sub WorkSheet_SelectionChange(Byval Target as Range)
Const Ps="123456" '这是保护工作表时用的密码,可修改
If Target.Count=1 And Not Iserror(Target) then
If Target="" Then
ActiveSheet.UnProtect PassWord:=Ps
Exit Sub
End If
End If
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,Scenarios:=True, PassWord:=Ps
End Sub
2、双击工程窗口中的“ThisWorkbook”,在其代码窗口中输入以下代码(此代码使得每次保存文件时,自动保护工作表,所起作用是防止他人打开文件时不启用宏时,造成上面设置无效,因为如果禁用宏,所有单元格将不能修改):
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Const Ps="123456" '这是保护工作表时用的密码,与上面工作表中使用的密码要求一致
Sheet1.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=Ps
'注意:这行最左边的“Sheet1”与上面第一步所设置的被保护工作表的名称要相同。
End Sub
3、保存文件,再打开试一试。