如何禁用Excel中的剪切、复制、粘贴功能?

网友投稿 1089 2022-10-18

如何禁用Excel中的剪切、复制、粘贴功能?

Q:在Excel中,如何禁止使用剪切、复制、粘贴功能,以避免他人破坏我的数据

A:在Excel 2003中,常使用下面的代码来禁用剪切、复制、粘贴等功能。

DimcmdBar As CommandBar

DimcbrCtl As CommandBarControl

SubDisableCutCopyPaste()

‘禁用快捷菜单中的命令

DoWithControl 21, False ‘剪切

DoWithControl 19, False ‘复制

DoWithControl 22, False ‘粘贴

DoWithControl 755, False ‘选择性粘贴

‘快捷键命令

With Application

.OnKey “^c”, “”

.OnKey “^x”, “”

.OnKey “^v”, “”

.CellDragAndDrop = False

.OnDoubleClick = “test”

End With

EndSub

SubDoWithControl(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 ThencmbCtl.Enabled = blnState

Next cmbBar

EndSub

Subtest()

MsgBox “命令不可用!”

EndSub

然而,在Excel 2007及以后的版本中,上述代码只能禁用快捷菜单和快捷方式的剪切、复制、粘贴等功能,在功能区中剪切、复制、粘贴仍然可以使用,快速访问工具栏中的也可以使用。如下图1所示。

图1

从图1中可以看出,单元格快捷菜单中的剪切、复制、粘贴等功能命令全变灰了,即表示不能使用了,但功能区和快速访问工具栏中的仍然可用。

此时,需要通过XML代码定制功能区来实现禁用功能区命令。关闭工作簿并使用Custom UI Editor打开工作簿,输入下图2所示的XML代码:

图2

验证无误并保存,关闭Custom UI Editor,重新打开工作簿,可以看到功能区和快速访问工具栏中的剪切、复制、粘贴等功能也都变灰了,如图3所示。

图3

注:当在VBE或者其他应用程序中进行复制操作后,复制的数据会保存在剪贴板中,可以通过剪贴板在工作簿中粘贴这些数据。我想,可以使用DataObject对象来删除剪贴板的内容。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:WPS怎么绘制多边形? wps插入正十边形的教程
下一篇:wps怎么画卡通效果的小火箭? wps小火箭的画法
相关文章