Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3229|回复: 2

[已解决]为什么禁用复制黏贴的代码不好用

[复制链接]
发表于 2016-8-26 16:02 | 显示全部楼层 |阅读模式
我使用的版本是2010,代码如下(网上搜的)
Private Sub Workbook_Open()
    With Application
'屏蔽常用工具栏剪切、复制、粘贴
    .CommandBars(3).Controls("剪切(&T)").Enabled = False
    .CommandBars(3).Controls("复制(&C)").Enabled = False
    .CommandBars(3).Controls("粘贴(&P)").Enabled = False
'屏蔽单元格右键菜单中的剪切、复制、粘贴命令
    .CommandBars("Cell").Controls("剪切(&T)").Enabled = False
    .CommandBars("Cell").Controls("复制(&C)").Enabled = False
    .CommandBars("Cell").Controls("粘贴(&P)").Enabled = False
'屏蔽编辑菜单中的剪切、复制、粘贴命令
    .CommandBars(1).Controls("编辑(&E)").Controls("剪切(&T)").Enabled = False
    .CommandBars(1).Controls("编辑(&E)").Controls("复制(&C)").Enabled = False
    .CommandBars(1).Controls("编辑(&E)").Controls("粘贴(&P)").Enabled = False
'屏蔽键盘剪切、复制、粘贴键
    .OnKey "^x", ""
    .OnKey "^c", ""
    .OnKey "^v", ""
    End With
End Sub
启动结果是 1.png

2.png
最佳答案
2016-8-27 12:36
漂哥,这个也是网上搜的,我在2007试过了可以用,你看看行不行
在不想要他能够复制粘贴的工作表里写代码如下:
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2. Call test
  3. End Sub
复制代码
然后在模块中写代码
  1. Sub test()
  2. Application.CommandBars(1).Controls(2).Controls(6).Enabled = False

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

  4. Application.CommandBars("column").Controls(3).Enabled = False

  5. Application.CommandBars("row").Controls(3).Enabled = False
  6. Application.CellDragAndDrop = False
  7. End Sub
复制代码
如果想要单个工作表受此约束,其他工作表照常就在单个工作表输入这个

  1. Private Sub Worksheet_Deactivate()
  2. Call testt
  3. End Sub

  4. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  5. Call test
  6. End Sub
复制代码
然后模块中输入这个
  1. Option Explicit

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

  4. Application.CommandBars("cell").Controls(3).Enabled = False

  5. Application.CommandBars("column").Controls(3).Enabled = False

  6. Application.CommandBars("row").Controls(3).Enabled = False
  7. Application.CellDragAndDrop = False
  8. End Sub

  9. Sub testt()
  10. Application.CommandBars(1).Controls(2).Controls(6).Enabled = True

  11. Application.CommandBars("cell").Controls(3).Enabled = True

  12. Application.CommandBars("column").Controls(3).Enabled = True

  13. Application.CommandBars("row").Controls(3).Enabled = True
  14. Application.CellDragAndDrop = True
  15. End Sub
复制代码
感觉自己好啰嗦,不然看附件吧! 222.rar (247 KB, 下载次数: 27)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-8-27 12:36 | 显示全部楼层    本楼为最佳答案   
漂哥,这个也是网上搜的,我在2007试过了可以用,你看看行不行
在不想要他能够复制粘贴的工作表里写代码如下:
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2. Call test
  3. End Sub
复制代码
然后在模块中写代码
  1. Sub test()
  2. Application.CommandBars(1).Controls(2).Controls(6).Enabled = False

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

  4. Application.CommandBars("column").Controls(3).Enabled = False

  5. Application.CommandBars("row").Controls(3).Enabled = False
  6. Application.CellDragAndDrop = False
  7. End Sub
复制代码
如果想要单个工作表受此约束,其他工作表照常就在单个工作表输入这个

  1. Private Sub Worksheet_Deactivate()
  2. Call testt
  3. End Sub

  4. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  5. Call test
  6. End Sub
复制代码
然后模块中输入这个
  1. Option Explicit

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

  4. Application.CommandBars("cell").Controls(3).Enabled = False

  5. Application.CommandBars("column").Controls(3).Enabled = False

  6. Application.CommandBars("row").Controls(3).Enabled = False
  7. Application.CellDragAndDrop = False
  8. End Sub

  9. Sub testt()
  10. Application.CommandBars(1).Controls(2).Controls(6).Enabled = True

  11. Application.CommandBars("cell").Controls(3).Enabled = True

  12. Application.CommandBars("column").Controls(3).Enabled = True

  13. Application.CommandBars("row").Controls(3).Enabled = True
  14. Application.CellDragAndDrop = True
  15. End Sub
复制代码
感觉自己好啰嗦,不然看附件吧! 222.rar (247 KB, 下载次数: 27)
回复

使用道具 举报

发表于 2016-8-27 12:51 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 20:05 , Processed in 0.371903 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表