打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何利用VBA代码,屏蔽EXCEL工作表的复制功能

大家好,我们今日继续讲解VBA代码解决方案的第50讲内容:如何利用VBA代码,有效的屏蔽工作表的复制功能。为什么要进入这节的内容呢?因为有时我们并不希望用户对工作表中的数据进行复制粘贴操作,这些是我的私有财产,不能让人轻易的获得,那么该怎么办呢?此时我们可以把所有的复制功能都屏蔽掉,这里会利用三个知识点

一:CommandBars对象的FindControl方法。

应用于CommandBars对象的FindControl方法返回一个符合指定条件的CommandBarControl对象。语法如下:expression.FindControl(Type, Id, Tag, Visible, Recursive)

参数

a) expression是必需的,返回一个CommandBars对象。

b) Type是可选的,要查找控件的类型。

c) Id是可选的,要查找控件的标识符。

d) Tag是可选的,要查找控件的标记值。

e) Visible是可选,如果该值为True,那么只查找屏幕上显示的命令栏控件。默认值为False。

f) Recursive是可选的,如果该值为True,那么将在命令栏及其全部弹出式子工具栏中查找。此参数仅应用于CommandBar对象。默认值为False。

特别注意:如果没有控件符合搜索条件,那么FindControl方法返回Nothing。

二:利用CellDragAndDrop 属性设置单元格的拖放功能,如果允许使用单元格拖放功能,则该值为True,如果不允许则该值设为false.

三:关于应用于Application 对象的OnKey方法,这个知识点在我之前的文章中讲解过,这里给大家复习一下:应用于Application 对象的OnKey方法指定特定键或特定的组合键运行的过程,语法如下:expression.OnKey(Key, Procedure)

参数:a) expression是必需的,该表达式返回一个Application 对象。

b) Key是必需的,用于表示要按的键的字符串,具体请参阅VBA中的帮助。

c) Procedure是可选的,表示要运行的过程名称的字符串,如果将Procedure参数指定为空文本(''),则不发生任何操作。

下面我们看如何利用VBA代码达到屏蔽复制功能的作用,如下面的代码:

Dim CmdCtrls As CommandBarControls

Dim Cmd As CommandBarControl

Sub MyProCopy()

Set CmdCtrls = Application.CommandBars.FindControls(ID:=19)

For Each Cmd In CmdCtrls

Cmd.Enabled = False

Next

Application.CellDragAndDrop = False

Application.OnKey ('^c'), ''

End Sub

Sub MyStaCopy()

Set CmdCtrls = Application.CommandBars.FindControls(ID:=19)

For Each Cmd In CmdCtrls

Cmd.Enabled = True

Next

Application.CellDragAndDrop = True

Application.OnKey ('^c')

End Sub

代码解析:

第1、2行代码在模块顶部声明两个模块级的变量。

第3行到第10行代码ProCopy过程,屏蔽工作表中所有的复制功能。其中第4行到第7行代码使用FindControls方法将所有与'复制'相关的命令栏控件赋给变量CmdCtrls后将其Enabled设置为False。

第8行代码屏蔽单元格拖放功能,利用了应用于Application对象的CellDragAndDrop属性

第9行代码屏蔽<Ctrl+C>组合键功能。

第11行到第18行代码StaCopy过程,恢复所有的复制功能。

下面看代码窗口:

其次:运行MyProCopy后:我这里按钮1是关联的MyProCopy,此时复制不起任何作用,在A1单元格中也不存在填充柄。

最后我们运行MyStaCopy,我这里关联的是按钮2,如图,复制可以了,也出现了填充柄。

今日内容回向:

1 如何做到复制不起作用呢?大概的思路是怎么样的?

2 本文讲到了三个知识点,读者是否清楚了呢?

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
使用VBA代码屏蔽复制
Excel 保护作品禁用指定宏的代码
如何解决在excel工作表中鼠标的右键不能使用的问题
vba如何去屏蔽一些功能?看完这些代码你应该会得到启发!
excel?VBA?禁用“剪切”的方法
excel2003屏蔽菜单、工具栏等代码大全
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服