Excel精英培训网

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

[已解决]VBA屏蔽“移动或复制工作表(&M)”

[复制链接]
发表于 2012-3-10 22:54 | 显示全部楼层 |阅读模式
我想用VBA屏蔽工作表标签栏中的“移动或复制工作表(M)”,
Application.CommandBars("ply").Controls("移动或复制工作表(&M)").Enabled = False
发生错误,无效,问题出在哪里呢

用     Application.CommandBars("PLY").Controls(5).Enabled = False
        Application.CommandBars("Edit").Controls(13).Enabled = False
却可以成功屏蔽,但在2007版中却屏蔽了“查看代码(V)”
这是什么原因呢,有高人可以解释这个现象吗
图片1.jpg
最佳答案
2012-3-11 00:20
我想用VBA屏蔽工作表标签栏中的“移动或复制工作表(M)”,
Application.CommandBars("ply").Controls("移动或复制工作表(&M)").Enabled = False
发生错误,无效,问题出在哪里呢

答:问题出在Controls后面的菜单名称错误,正确的是
Application.CommandBars("ply").Controls("移动或复制工作表(&M)...").Enabled = False
少了红色的3个点


用     Application.CommandBars("PLY").Controls(5).Enabled = False
        Application.CommandBars("Edit").Controls(13).Enabled = False
却可以成功屏蔽,但在2007版中却屏蔽了“查看代码(V)”
这是什么原因呢,有高人可以解释这个现象吗

答:在2003 中 移动和复制工作表菜单在工作表标签右键菜单(也就是PLY菜单)的第5个,所以Controls的对应编号是5
在2007 和2010中,移动和复制工作表菜单在工作表标签右键菜单的第4个,而第5个对应的菜单式 查看代码(V)
如果在2007 和2010中屏蔽 移动和复制工作表菜单就要用
Application.CommandBars("PLY").Controls(4).Enabled = False

附件有工作表标签右键菜单的编号和对应名称资料,供楼主参考


资料-工作表右键菜单编号和名称.rar (5.32 KB, 下载次数: 238)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-3-10 23:43 | 显示全部楼层
回复

使用道具 举报

发表于 2012-3-11 00:15 | 显示全部楼层
Application.CommandBars("ply").Controls("移动或复制工作表(&M)...").Enabled = False
回复

使用道具 举报

发表于 2012-3-11 00:20 | 显示全部楼层    本楼为最佳答案   
我想用VBA屏蔽工作表标签栏中的“移动或复制工作表(M)”,
Application.CommandBars("ply").Controls("移动或复制工作表(&M)").Enabled = False
发生错误,无效,问题出在哪里呢

答:问题出在Controls后面的菜单名称错误,正确的是
Application.CommandBars("ply").Controls("移动或复制工作表(&M)...").Enabled = False
少了红色的3个点


用     Application.CommandBars("PLY").Controls(5).Enabled = False
        Application.CommandBars("Edit").Controls(13).Enabled = False
却可以成功屏蔽,但在2007版中却屏蔽了“查看代码(V)”
这是什么原因呢,有高人可以解释这个现象吗

答:在2003 中 移动和复制工作表菜单在工作表标签右键菜单(也就是PLY菜单)的第5个,所以Controls的对应编号是5
在2007 和2010中,移动和复制工作表菜单在工作表标签右键菜单的第4个,而第5个对应的菜单式 查看代码(V)
如果在2007 和2010中屏蔽 移动和复制工作表菜单就要用
Application.CommandBars("PLY").Controls(4).Enabled = False

附件有工作表标签右键菜单的编号和对应名称资料,供楼主参考


资料-工作表右键菜单编号和名称.rar (5.32 KB, 下载次数: 238)

评分

参与人数 1 +9 收起 理由
xiaoni + 9 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2012-3-11 06:56 | 显示全部楼层
本帖最后由 xiaoni 于 2012-3-11 08:51 编辑

帅哥,ply代表右键吗,EDIT代表什么?
CommandBars它的编号03版35和07或者10版的43是啥意思?
还有我把代码复制到:工作表的选择了的工作表1改变事件里面,怎么没有屏蔽呢?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.CommandBars("PLY").Controls(4).Enabled = False
End Sub

右键菜单移动复制工作表还是黑的,怎么不是灰的呢?
回复

使用道具 举报

 楼主| 发表于 2012-3-12 09:02 | 显示全部楼层
本帖最后由 vv36 于 2012-3-12 11:38 编辑
那么的帅 发表于 2012-3-11 00:20
我想用VBA屏蔽工作表标签栏中的“移动或复制工作表(M)”,
Application.CommandBars("ply").Controls("移动 ...


我也想知道“EDIT”代表什么


“EDIT”代表单元格右键
回复

使用道具 举报

发表于 2012-3-12 09:44 | 显示全部楼层
xiaoni 发表于 2012-3-11 06:56
帅哥,ply代表右键吗,EDIT代表什么?
CommandBars它的编号03版35和07或者10版的43是啥意思?
还有我把代 ...

我的Office2010 也是这个问题 什么都屏蔽不了啊
回复

使用道具 举报

发表于 2012-3-12 09:45 | 显示全部楼层
那么的帅 发表于 2012-3-11 00:20
我想用VBA屏蔽工作表标签栏中的“移动或复制工作表(M)”,
Application.CommandBars("ply").Controls("移动 ...

我的Office2010 输入一样的代码怎么一样都屏蔽不了呢
回复

使用道具 举报

 楼主| 发表于 2012-3-12 14:41 | 显示全部楼层
那么的帅 发表于 2012-3-11 00:20
我想用VBA屏蔽工作表标签栏中的“移动或复制工作表(M)”,
Application.CommandBars("ply").Controls("移动 ...

特意安装了2010
Application.CommandBars("ply").Controls("移动或复制工作表(&M)...").Enabled = False
Application.CommandBars("ply").Controls("移动或复制(&M)...").Enabled = False
Application.CommandBars("ply").Controls(4).Enabled = False
(1到10都不行)
以上都不行




回复

使用道具 举报

发表于 2012-3-13 08:51 | 显示全部楼层
这种要用Control的ID控制
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 01:21 , Processed in 0.639134 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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