Excel精英培训网

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

[已解决]VBA_自定义菜单栏_为每张工作表设置指定菜单

  [复制链接]
发表于 2011-8-3 09:39 | 显示全部楼层 |阅读模式
VBA_自定义菜单栏_为每张工作表设置指定菜单

祥细要求在附件中,请各位教师帮忙。。。先谢谢老师们了。。。
最佳答案
2011-8-3 17:03
本帖最后由 zjdh 于 2011-8-3 17:22 编辑

是这样吧?
为每张工作表设置自定义菜单.rar (14.07 KB, 下载次数: 166)

VBA_自定义菜单栏_为每张工作表设置指定菜单.rar

12.01 KB, 下载次数: 29

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-8-3 17:03 | 显示全部楼层    本楼为最佳答案   
本帖最后由 zjdh 于 2011-8-3 17:22 编辑

是这样吧?
为每张工作表设置自定义菜单.rar (14.07 KB, 下载次数: 166)
回复

使用道具 举报

 楼主| 发表于 2011-8-3 19:04 | 显示全部楼层
回复 zjdh 的帖子

高手呀,问题总算解决了,很感谢你老师!!!
回复

使用道具 举报

 楼主| 发表于 2011-8-3 19:31 | 显示全部楼层
回复 zjdh 的帖子

老师,刚发现一个问题,就是如果我新插入一张工作表后,没有为其指定设置自定义菜单,也会出现自定义的菜单,请老师,修改下。。。。

期待回复。。。感谢。。。。
回复

使用道具 举报

发表于 2011-8-3 22:30 | 显示全部楼层
本帖最后由 FF7 于 2011-8-4 00:24 编辑

建议将每一个工作表的Activate事件,在Thisworkbook里面写成WorkBook_SheetActivate事件。
类似于如下格式:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  Dim mc As CommandBarControl
  For Each mc In Application.CommandBars(1).Controls("我的工具箱(&M)").Controls
      mc.Visible = False
  Next
  
  Select Case ActiveSheet.Name
     Case "统计": GoSub s0: GoSub s1: GoSub s3: GoSub s5
     Case "班级": GoSub s0: GoSub s4
     Case "成绩": GoSub s7
     Case "姓名": GoSub s0: GoSub s6
     Case "名次": GoSub s2
     Case Else:   GoSub s0
  End Select
  
  Exit Sub
s0: Application.CommandBars(1).Controls("我的工具箱(&M)").Controls("工作表切换").Visible = True: Return
s1: Application.CommandBars(1).Controls("我的工具箱(&M)").Controls("命令一").Visible = True: Return
s2: Application.CommandBars(1).Controls("我的工具箱(&M)").Controls("命令二").Visible = True: Return
s3: Application.CommandBars(1).Controls("我的工具箱(&M)").Controls("命令三").Visible = True: Return
s4: Application.CommandBars(1).Controls("我的工具箱(&M)").Controls("命令四").Visible = True: Return
s5: Application.CommandBars(1).Controls("我的工具箱(&M)").Controls("命令五").Visible = True: Return
s6: Application.CommandBars(1).Controls("我的工具箱(&M)").Controls("命令六").Visible = True: Return
s7: Application.CommandBars(1).Controls("我的工具箱(&M)").Controls("命令七").Visible = True: Return
End Sub
楼主今后可以根据自己的需要对代码中的内容自己进行增减,代码不是很复杂。

为每张工作表设置自定义菜单.rar

12.68 KB, 下载次数: 64

回复

使用道具 举报

 楼主| 发表于 2011-8-4 00:03 | 显示全部楼层
回复 FF7 的帖子

老师,有二个问题请教一下,

如果其它工作表中,不指定 自定义的菜单,是不是修改下面这句代码,是怎么修改的。
    Case Else:   GoSub s0


还有一个问题,就是,为什么我每次打开工作薄的时候,都是显示最后一张工作表,  不是上一次修改保存时,显示的那张工作表。请修改下。。。
回复

使用道具 举报

发表于 2011-8-4 00:23 | 显示全部楼层
不指定菜单的话,直接删除case else这一句话
第二问,代码已经重做修改,见上上层楼!!
回复

使用道具 举报

 楼主| 发表于 2011-8-4 01:08 | 显示全部楼层
回复 FF7 的帖子

首先感谢楼主的耐心解答,楼主技术真的很不错。。

关于第二个问题,删除那一句,还是有这个出现,不知,能不能,不显示这个。
未命名.JPG
回复

使用道具 举报

发表于 2011-8-4 07:42 | 显示全部楼层
本帖最后由 FF7 于 2011-8-4 07:42 编辑

猜到楼主由此一问:
Dim mc As CommandBarControl
  Application.CommandBars(1).Controls("我的工具箱(&M)").visible = True  '一共修改两个地方的代码:1.这里增加一行代码
  For Each mc In Application.CommandBars(1).Controls("我的工具箱(&M)").Controls
      mc.Visible = False
  Next
  
  Select Case ActiveSheet.Name
     Case "统计": GoSub s0: GoSub s1: GoSub s3: GoSub s5
     Case "班级": GoSub s0: GoSub s4
     Case "成绩": GoSub s7
     Case "姓名": GoSub s0: GoSub s6
     Case "名次": GoSub s2
     Case Else:   Application.CommandBars(1).Controls("我的工具箱(&M)").visible = False '2.这里修改一行代码,未测试,上班去了!!!!!!
  End Select
  
  Exit Sub
s0: Application.CommandBars(1).Controls("我的工具箱(&M)").Controls("工作表切换").Visible = True: Return
s1: Application.CommandBars(1).Controls("我的工具箱(&M)").Controls("命令一").Visible = True: Return
s2: Application.CommandBars(1).Controls("我的工具箱(&M)").Controls("命令二").Visible = True: Return
s3: Application.CommandBars(1).Controls("我的工具箱(&M)").Controls("命令三").Visible = True: Return
s4: Application.CommandBars(1).Controls("我的工具箱(&M)").Controls("命令四").Visible = True: Return
s5: Application.CommandBars(1).Controls("我的工具箱(&M)").Controls("命令五").Visible = True: Return
s6: Application.CommandBars(1).Controls("我的工具箱(&M)").Controls("命令六").Visible = True: Return
s7: Application.CommandBars(1).Controls("我的工具箱(&M)").Controls("命令七").Visible = True: Return
回复

使用道具 举报

 楼主| 发表于 2011-8-4 08:32 | 显示全部楼层
回复 FF7 的帖子

楼主厉害呀,知道我有此一问,而且,楼主修改的代码未经你测试,就一下能成功。厉害。。。。


感谢楼主的解答!!!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 01:23 , Processed in 0.846361 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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