前景提要
昨天我们分享了如何通过VBA实现批量工作薄保护的功能,这样一来我们做好的数据,其他人可以看,可以参考,甚至可以复制粘贴都可以,但是就是无法更改我们的数据,我们的数据只能自己更改,这样是不是很方面,对于经常需要将自己的报表数据分享给其他人使用的童鞋来说,是非常的实用的,但是,但是,,,等你拿回来要自己再次更新修改数据的时候,是不是要一个一个的去解除锁定呢?毕竟excel是没有办法人脸识别,认识我这个主人啊,怎么办呢?别方,既然能批量锁定,自然就有批量解除锁定的方法咯
场景模拟
还是昨天的数据,我们昨天成功的锁定了所有的工作薄,这样其他人都无法更改我们分享的数据了。
但是轮到我们自己修改数据的时候,也会有这样的苦恼,虽然我有密码,但是工作薄实在太多了,所以我们还是用vba来批量解锁,解铃还须系铃人嘛
方法分析
方法也很简单,保护是protect,那么解除保护呢,unprotect,nice,来上代码
代码区
Sub protect()
Dim pathn$
pathn = ThisWorkbook.Path
f = Dir(pathn & "\")
Do While f <> ""
If f <> "test.xlsm" Then
Application.ScreenUpdating = False
Workbooks.Open (pathn & "\" & f)
ActiveSheet.Unprotect "123"
Application.ScreenUpdating = True
ActiveWorkbook.Close True
End If
f = Dir()
Loop
End Sub
我们来看看最终的效果
打开功能正常,我们自己也可以复制粘贴
任意添加新的工作薄
非常完美,这样我们不仅仅阻止了他人肆意的篡改我们的数据,同时我们也可以轻松方便的实现工作薄的接触保护功能,保护只是用来限制他人的,怎么可能反过来为难自己的操作呢,哈哈
代码分析
很简单,接触保护的功能就一句代码
ActiveSheet.Unprotect "123"
记住,不要忘记密码了哈,忘记密码了,那你真的是自己为难自己了。