VBA实现非空数据锁定

文:Kael.Z  版权所有,尊重原创

数据锁定

很多人在编辑EXCEL表格时,涉及到数据量很大,但又怕自己的不小心操作对单元格目标数值产生误操作,引起数据的错乱。

这种情况完全可以用VBA来实现锁定!保证最小的失误!

说干就干!跟我来!

打开EXCEL,按住ALT+F11,打开VBA编辑器!在你要实行的那个表格插入代码,这里我们默认采用sheet1.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      On Error Resume Next
     Sheet1.Unprotect Password:="123"
     If Target.Value <> "" Then
          Target.Locked = True
          Sheet1.Protect Password:="123"
      End If
End Sub

将上述代码复制粘贴sheet1的代码区!

我还是解释下上面的代码吧!上述代码表达的是选取单元格发生改变时,执行下面的代码。

On Error Resume Next
代码遇到错误跳过执行下一句

 Sheet1.Unprotect Password:="123"    为取消保护的密码,当然你可以在此自定义!

If Target.Value <> "" Then
          Target.Locked = True
          Sheet1.Protect Password:="123"
      End If
这个代码就是判断目标单元格的值为不为空了,不为空时执行保护,密码为123。

最终实现的效果如文章中的效果图!

代码其实很简单!方法也很实用!希望大家在工作中适当添加,给工作带来便利才是我们的目标。

补充:有人会发现启用后,所有非空数据的单元格都被锁定了,但是要编辑单个单元格一次取消一个还好,若大批量编辑,你单个来就很慢了,其实只要你将代码中的sheet1改为其他,编辑完后改回来即可!

分享到: