Excel精英培训网

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

[已解决]子菜单代码如何写?

[复制链接]
发表于 2011-11-12 22:00 | 显示全部楼层 |阅读模式
帅老师!来帮忙解决。。。
人力资源管理系统(VBA)(菜单)A.rar (19.97 KB, 下载次数: 34)
发表于 2011-11-12 22:55 | 显示全部楼层
第二个问题我可以回答你,在workopen里面添加
Worksheets("表的名称").Select
这样每次重新打开表时就默认显示这张子表
回复

使用道具 举报

发表于 2011-11-16 10:10 | 显示全部楼层    本楼为最佳答案   
本帖最后由 zjdh 于 2011-11-16 10:15 编辑

  1. Sub 宏1() '数据保存
  2.    ThisWorkbook.Save
  3. End Sub
  4. Sub 宏2() '数据另存
  5.    Application.Dialogs(5).Show
  6. End Sub
  7. Sub 宏3() '打印预览
  8.    ActiveSheet.PrintPreview
  9. End Sub
  10. Sub 宏4() '打印本表
  11.   Application.Dialogs(8).Show
  12.   '或ActiveSheet.PrintOut
  13. End Sub
  14. Sub 宏5() '退出系统
  15.    ThisWorkbook.Close False
  16. End Sub
  17. Sub auto_open()
  18.    Worksheets("sheet1").Select
  19. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2011-11-16 12:47 | 显示全部楼层
zjdh 发表于 2011-11-16 10:10

谢谢!等下试试,
再问个问题!恢复Excel菜单的代码什么写。
我用这个代码提示编辑错误:缺少函数或变量。。。。
Sub 恢复菜单()  '恢复Excel菜单
    a = MsgBox("确定要恢复Excel菜单?", vbYesNo + vbQuestion, "恢复Excel菜单")
    If a = vbYes Then
    On Error Resume Next
    MenuBars("MyMenu").Delete    '删除自定义选单
    With Application
        .CommandBars("Worksheet Menu Bar").Enabled = True
        .CommandBars("Standard").Visible = True
        .CommandBars("Formatting").Visible = True
    End With
    Application.CommandBars("MyMenu").Delete
    Application.DisplayFormulaBar = True
    Application.Caption = "Microsoft Excel"
    End If
End Sub
回复

使用道具 举报

 楼主| 发表于 2011-11-16 12:50 | 显示全部楼层
hytsky 发表于 2011-11-12 22:55
第二个问题我可以回答你,在workopen里面添加
Worksheets("表的名称").Select
这样每次重新打开表时就默认 ...

可以写完整一句代码?
回复

使用道具 举报

发表于 2011-11-16 12:59 | 显示全部楼层
本帖最后由 zjdh 于 2011-11-16 13:04 编辑

我3楼回复,不是2个问题都解决了吗?!!
恢复菜单:


  1. Sub 恢复菜单()
  2. If MsgBox("确定要恢复Excel菜单?", vbYesNo + vbQuestion, "恢复Excel菜单") = vbYes Then
  3. On Error Resume Next
  4. Application.CommandBars("MyMenu").Delete
  5. Application.CommandBars("Worksheet Menu Bar").Enabled = True
  6. Application.CommandBars("Formula Bar").Reset
  7. Application.Caption = "Microsoft Excel"
  8. End If
  9. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2011-11-16 13:53 | 显示全部楼层
zjdh 发表于 2011-11-16 12:59
我3楼回复,不是2个问题都解决了吗?!!
恢复菜单:

谢谢你!!搞定了。回完这个设最佳答案了。。

Sub 自定义菜单()    '自定义多级选单
    Application.ScreenUpdating = False '操作时不进行刷屏
    Application.DisplayAlerts = False '禁用所有事件
    On Error Resume Next         '忽略错误
    MenuBars("MyMenu").Delete    '删除自定义选单
    MenuBars.Add ("MyMenu")      '自定义选单项
    MenuBars("MyMenu").Menus.Add "首页"(如果我只要菜单,不了显示子菜单,代码要怎么改?)
    MenuBars("MyMenu").Menus("系统文件").MenuItems.Add "数据保存", "数据保存"
    MenuBars("MyMenu").Menus("系统文件").MenuItems.Add "数据另存为", "数据另存为"
    MenuBars("MyMenu").Menus("系统文件").MenuItems.Add "打印预览", "打印预览"
    MenuBars("MyMenu").Menus("系统文件").MenuItems.Add "打印本表", "打印本表"
    MenuBars("MyMenu").Menus("系统文件").MenuItems.Add "恢复Excel菜单", "恢复菜单"
   
    MenuBars("MyMenu").Activate    '激活自定义选单
    Application.Caption = "**系统"
    Application.DisplayAlerts = True      '      启用所有事件
    Application.ScreenUpdating = True            '打开屏幕刷新
End Sub
回复

使用道具 举报

发表于 2011-11-16 15:30 | 显示全部楼层
不明白!
是把这些命令排成一行?
回复

使用道具 举报

 楼主| 发表于 2011-11-16 16:30 | 显示全部楼层
zjdh 发表于 2011-11-16 15:30
不明白!
是把这些命令排成一行?

意思是说,如果我自做的菜单栏,点击后不会出现子菜单。
例如:鼠示点击菜单“目录”直接链接到我的“目录”工作表里。(不会出现空白的子菜单)
我用了这一句MenuBars("MyMenu").Menus.Add "首页"      ' 有空白的子菜单
回复

使用道具 举报

发表于 2011-11-16 16:54 | 显示全部楼层
越说越糊涂了!!
到底要直接执行宏还是超级链接??
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 22:00 , Processed in 0.486898 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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