Excel VBA工作薄 5.17关键数据给你看,对,只能看不能摸
前景提要
昨天我们分享了如果限制工作薄的打开次数,主要原理是通过记录工作薄打开的次数来进行相关的操作,比方说达到一定次数之后就不再允许对方打开工作薄或者自动删除数据之类的,看大家比较想要知道达到次数之后删除工作薄的操作,后面我会再写一篇文章来分享下删除工作薄的代码操作,今天我们继续分享工作薄保护方面的知识,这次我们要实现的目的就是禁止对方复制粘贴我们的数据。
场景模拟
依然还是假设其他的同时需要我们的数据,并且希望我们分享自己的数据(别介,我实在没有太好的场景了),这次我们的数据是可以给对方看的,但是也仅仅是看看而已,我们不希望对方在拿到我们的数据之后,又去复制粘贴拷贝一份数据,交给上级邀功去了,好吧,我承认我邪恶了,那么我们就需要设置自己的工作薄禁止复制粘贴,给你看,你就老老实实的看看就好~~,不废话,上代码
代码区
Dim cmdBar As CommandBar
Dim cbrCtl As CommandBarControl
Sub DisableCutCopyPaste()
DoWithControl 21, True
DoWithControl 19, True
DoWithControl 22, True
DoWithControl 755, True
With Application
.OnKey "^c", ""
.OnKey "^x", ""
.OnKey "^v", ""
.CellDragAndDrop = False
.OnDoubleClick = "test"
End With
End Sub
Sub DoWithControl(iId As Integer, blnState As Boolean)
Dim cmbBar As CommandBar
Dim cmbCtl As CommandBarControl
On Error Resume Next
For Each cmbBar In Application.CommandBars
Set cmbCtl = cmbBar.FindControl(ID:=iId, Recursive:=True)
If Not cmbCtl Is Nothing Then
cmbCtl.Enabled = blnState
End If
Next cmbBar
End Sub
好了,代码写完了,我们来看看效果
在代码执行之前,工作薄是可以正常使用复制粘贴命令的
在执行代码之后,我们看看复制粘贴按钮,已经变成了灰色不可用的状态,就算是键盘按下ctrl+c也没有办法执行复制的命令的
非常成功的实现了我们的要求。
当然使用场景也不是绝对的,我们可以选择搭配之前的限制工作波的使用次数和有效期来一起使用,比方说打开多少次之后就只能看,不能复制粘贴之类的,方法虽然不是很强大,但是几个方法搭配起来,效果还是很不错的,就和炒菜一样,哈哈
赞 (0)