ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 10541|回复: 11

[已解决] Workbook_Open事件无效

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-12-31 23:38 | 显示全部楼层 |阅读模式
本帖最后由 LIUZHU 于 2013-1-3 23:00 编辑

我在附件中的Workbook_Open事件中写了一段代码,内容是添加一个“我的报表”菜单,然后在其下面再添加一个“我的报表”子菜单,按理说,打开这个工作簿后,Excel应该自动添加菜单,但是在我的电脑上为何不执行呢?求助各位老师。(注:我已经启用宏,Excel2007)
经测试,问题出现在这句“Application.CommandBars(1).Controls.Add”,如果改成“Application.CommandBars(1).Controls("帮助(&H)").Controls.Add”,则可以添加菜单,这个是为什么呢,望老师或版主予以解答为感!

自动添加菜单.rar

8.64 KB, 下载次数: 63

TA的精华主题

TA的得分主题

发表于 2013-1-1 01:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
二级菜单加上菜单项就好了

TA的精华主题

TA的得分主题

发表于 2013-1-1 01:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
试试看:
  1. Private Sub Workbook_Open()
  2.     Dim Hngcbb As CommandBarPopup, NewMenu As CommandBarPopup, mp As CommandBarButton
  3.     On Error Resume Next
  4.     Application.CommandBars("Worksheet menu bar").Controls("我的报表(&G)").Delete
  5.     Set Hngcbb = Application.CommandBars(1).Controls.Add(Type:=msoControlPopup, _
  6.     Before:=Application.CommandBars(1).Controls("帮助(&H)").Index, Temporary:=True)     '添加Excel菜单项,我的报表
  7.     With Hngcbb
  8.         .Caption = "我的报表(&G)"
  9.         .Visible = True
  10.     End With
  11.    
  12.     '添加第一个子菜单,我的报表
  13.     Set NewMenu = Hngcbb.Controls.Add(Type:=msoControlPopup, Temporary:=True)
  14.     With NewMenu
  15.         .Caption = "我的报表(&C)"
  16.         .BeginGroup = True
  17.     End With
  18.     '以下加菜单项
  19.     Set mp = NewMenu.Controls.Add(msoControlButton)
  20.     With mp
  21.         .Caption = "最后一级"
  22.         .OnAction = "ThisWorkbook.Macro1"
  23.         .FaceId = 422
  24.     End With
  25.     Set Hngcbb = Nothing
  26.     Set NewMenu = Nothing
  27.     Set mp = Nothing
  28. End Sub



  29. Sub Macro1()
  30.     MsgBox "这是最后一级测试"
  31. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-1-1 09:29 | 显示全部楼层
zhaogang1960 发表于 2013-1-1 01:27
试试看:

赵老师,您的代码还是不能运行啊,我感到奇怪的是,“Application.CommandBars(1).Controls.Add”,这句在别人的电脑上运行是完全没有问题的,也添加了自定义菜单,但是在我自己的电脑上测试时,这句“Application.CommandBars(1).Controls.Add”不能运行,即不能添加自定义菜单,非得要改成“Application.CommandBars(1).Controls("帮助(&H)").Controls.Add”才可以,两台电脑上的都是Excel2007,难道这是Excel的设置问题吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-1-1 09:47 | 显示全部楼层
zhaogang1960 发表于 2013-1-1 01:19
二级菜单加上菜单项就好了

就是在立即窗口中运行也有明显的区别
Application.CommandBars(1).Controls("帮助(&H)").Controls.Add Type:=msoControlPopup,运行这句后,马上增加一个自定义菜单
Application.CommandBars(1).Controls.Add Type:=msoControlPopup,运行这句后,没有反应,这真的是否是Excel设置问题呢?

TA的精华主题

TA的得分主题

发表于 2013-1-1 12:17 | 显示全部楼层
LIUZHU 发表于 2013-1-1 09:47
就是在立即窗口中运行也有明显的区别
Application.CommandBars(1).Controls("帮助(&H)").Controls.Add T ...

这还真不好理解,2007很多地方和2003不兼容,后推出了很多补丁,建议安装2010

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-1-3 19:32 | 显示全部楼层
zhaogang1960 发表于 2013-1-1 12:17
这还真不好理解,2007很多地方和2003不兼容,后推出了很多补丁,建议安装2010

赵老师,还想麻烦您一下,我发现Application.CommandBars(1).Controls.Add这句其实是可以添加自定义菜单的,只是自定义菜单看不见而已。

TA的精华主题

TA的得分主题

发表于 2013-1-3 19:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
LIUZHU 发表于 2013-1-3 19:32
赵老师,还想麻烦您一下,我发现Application.CommandBars(1).Controls.Add这句其实是可以添加自定义菜单的 ...

你的2007比较特殊,就用它认识的方式写吧(Controls("帮助(&H)"))

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-1-3 22:42 | 显示全部楼层
zhaogang1960 发表于 2013-1-3 19:35
你的2007比较特殊,就用它认识的方式写吧(Controls("帮助(&H)"))

Application.CommandBars(1).Controls.Add添加的自定义菜单其实是被隐藏了,有什么办法显示出来吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-1-3 22:59 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
zhaogang1960 发表于 2013-1-3 19:35
你的2007比较特殊,就用它认识的方式写吧(Controls("帮助(&H)"))

搞定了,删除安装目录下的Excel12.xlb文件即可,即恢复Excel默认方式。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-11 05:03 , Processed in 0.032002 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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