Excel 怎样在一张工作表中禁用“剪切”功能

2020-11-01 教育 297阅读

此方法只会禁用本工作薄的“剪切”功能,不会影响其他工作薄使用“剪切”功能。而对于工作表之间,也可以类似使用。


其思路为:当工作薄被激活(Activate)时,进行禁用某些功能,当切换到别的工作薄后(Deactivate)解除相应的禁用。当然关闭本工作薄前(BeforeClose)也该解除禁用。

代码如下:复制到ThisWorkBook代码区(在office 2003 正常,在office xp等版本设置可能有所不同)


Private Sub Workbook_Activate() '本工作薄激活时,相应地禁用“剪切”


'禁用菜单栏"剪切",里面的序号代表位置,2和3是2003里的,XP中应该不同,自己修改

Application.CommandBars(1).Controls(2).Controls(3).Enabled = False


'禁用右键中的"剪切",序号1代表第一个选择,2代表复制(这是我的,自己修改你自己的)

Application.CommandBars("cell").Controls(1).Enabled = False


'禁用键盘"Ctrl+x",恢复方法:Application.OnKey "^x"

Application.OnKey "^x", ""

'禁用移动(会把拖动也禁用)

Application.CellDragAndDrop = False


End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean) '关闭前 解除

'解除禁用


Application.CommandBars(1).Controls(2).Controls(3).Enabled = True

Application.CommandBars("cell").Controls(1).Enabled = True

Application.OnKey "^x"

Application.CellDragAndDrop = True

End Sub



Private Sub Workbook_Deactivate() '本工作薄失去焦点时,相应地解除禁用

'解除禁用

Application.CommandBars(1).Controls(2).Controls(3).Enabled = True

Application.CommandBars("cell").Controls(1).Enabled = True

Application.OnKey "^x"

Application.CellDragAndDrop = True

End Sub



Private Sub Workbook_Open() '打开时, 禁用“剪切”


'禁用菜单栏"剪切",里面的序号代表位置,2和3是2003里的,XP中应该不同,自己修改

Application.CommandBars(1).Controls(2).Controls(3).Enabled = False


'禁用右键中的"剪切",序号1代表第一个选择,2代表复制(这是我的,自己修改你自己的)

Application.CommandBars("cell").Controls(1).Enabled = False


'禁用键盘"Ctrl+x",恢复方法:Application.OnKey "^x"

Application.OnKey "^x", ""  '禁用移动(会把拖动也禁用)

Application.CellDragAndDrop = False

End Sub

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com