自己做网站项目,建设网站报价单,查看网站开发平台,网站开发有什么用在工作表单元格中输入数据后#xff0c;该单元格就被锁定#xff0c;不能再编辑。
打开VBE#xff0c;在工程资源管理器中双击该工作表名称打开其代码模块#xff0c;在其中输入下面的代码#xff1a;
假设整个工作表的LockedFalse
Private Sub Worksheet_Change(ByVal … 在工作表单元格中输入数据后该单元格就被锁定不能再编辑。
打开VBE在工程资源管理器中双击该工作表名称打开其代码模块在其中输入下面的代码
假设整个工作表的LockedFalse
Private Sub Worksheet_Change(ByVal Target As Range)Dim rCell As RangeDim ans As VbMsgBoxResultFor Each rCell In TargetWith rCellIf Len(.Value) 0 Thenans MsgBox(输入正确吗? vbCrLf vbCrLf _vbTab .Value ( .Address(False, False) ) vbCrLf vbCrLf _输入数值后将不能编辑这个单元格., vbYesNo, 单元格锁定通知)If ans vbYes ThenIf Me.ProtectContents ThenMe.Unprotect Password:123 首先撤销保护.Locked TrueMe.ProtectPassword:123Else.ClearContentsActiveCell.Offset(-1, 0).Select 重新选择数据输入单元格End IfEnd IfEnd WithNext rCell
End Sub
这里假设锁定工作表的密码为“123”。
可以使用右击单元格的方式来重置想要重新输入数据的单元格。在该工作表代码模块中添加下面的代码
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)Dim rCell As RangeDim ans As VbMsgBoxResultFor Each rCell In Target.CellsWith rCellIf Len(.Value) 0 Thenans MsgBox(你想要重置这个单元格吗? vbCrLf vbCrLf _vbTab .Value ( .Address(False, False) ), vbYesNo, 单元格锁定通知)If ans vbYes ThenIf ActiveSheet.ProtectContents Then ActiveSheet.Unprotect Password:123 首先撤销保护Application.EnableEvents False.ClearContents.Locked FalseApplication.EnableEvents TrueActiveSheet.Protect Password:123End IfEnd IfEnd WithNextCancel True
End Sub
这样右击想要重新输入数据的单元格会弹出一个消息框询问你是否要重置这个单元格如果点击“是”则会清空该单元格并供输入新数据。
效果如下图1所示。