Excel VBA高效办公应用-第十六章-VBA高效文件操作(使用级联菜单管理多个工作簿)

本示例提供了一种管理多个文件的方法——将不同文件中不同表的名字放到菜单上,单击菜单就能调出不同文件中相应的表。


Option Explicit
Sub OpenMenu() '自定义多级选单函数
    On Error Resume Next '忽略错误
    MenuBars("MyMenu").Delete '删除自定义选单
    MenuBars.Add ("MyMenu") '自定义选单项
    Sheets("销售部全年记录").Select
    '增加第一个选单项“一月份”
    MenuBars("MyMenu").Menus.Add Caption:="一月份"
    '在“一月份”选单下增加“1月出勤加班统计表”选项
    MenuBars("MyMenu").Menus("一月份").MenuItems.Add Caption:="1月出勤加班统计表", OnAction:="SheetOpen11"
    '在“一月份”选单下增加“1月销售业绩表”选项
    MenuBars("MyMenu").Menus("一月份").MenuItems.Add Caption:="1月销售业绩表", OnAction:="SheetOpen12"
    MenuBars("MyMenu").Menus("一月份").MenuItems.Add Caption:="1月销售部工资表", OnAction:="SheetOpen13"
    MenuBars("MyMenu").Menus.Add Caption:="二月份" '建立选单项“二月份”
    MenuBars("MyMenu").Menus("二月份").MenuItems.Add Caption:="2月出勤加班统计表", OnAction:="sheetopen21"
    MenuBars("MyMenu").Menus("二月份").MenuItems.Add Caption:="2月销售业绩表", OnAction:="SheetOpen22"
    MenuBars("MyMenu").Menus("二月份").MenuItems.Add Caption:="2月销售部工资表", OnAction:="SheetOpen23"
    MenuBars("MyMenu").Activate '激活自定义选单
End Sub
    Sub auto_open() '系统自动打开运行宏
       OpenMenu '调用用户选单函数
    End Sub
    Sub auto_close() '系统自动关闭运行宏
       On Error Resume Next '忽略错误
       MenuBars("MyMenu").Delete '删除自定义的选单
    End Sub
Sub SheetOpen11()
Dim book As Workbook '定义一个Workbook变量
On Error Resume Next
Set book = Workbooks("chap16_1.xls")
    If book Is Nothing Then '说明chap14_1.xls没打开
        '打开chap14_1.xls
        Workbooks.Open Filename:=ThisWorkbook.Path + "\chap16_1.xls"
    End If
    Windows("chap16_1.xls").Activate '使chap14_1为当前文档
    '使表"1月出勤加班统计表"为当前活动表
    Sheets("1月出勤加班统计表").Activate
End Sub
Sub SheetOpen12()
Dim book As Workbook '定义一个Workbook变量
On Error Resume Next
Set book = Workbooks("chap16_1.xls")
    If book Is Nothing Then '说明chap14_1.xls没打开
        '打开chap14_1.xls
        Workbooks.Open Filename:=ThisWorkbook.Path + "\chap16_1.xls"
    End If
    Windows("chap16_1.xls").Activate '使chap14_1为当前文档
    Sheets("1月销售业绩表").Activate
End Sub
Sub SheetOpen13()
Dim book As Workbook '定义一个Workbook变量
On Error Resume Next
Set book = Workbooks("chap16_1.xls")
    If book Is Nothing Then '说明chap14_1.xls没打开
        '打开chap14_1.xls
        Workbooks.Open Filename:=ThisWorkbook.Path + "\chap16_1.xls"
    End If
    Windows("chap16_1.xls").Activate '使chap14_1为当前文档
    Sheets("1月销售部工资表").Activate
End Sub
Sub SheetOpen21()
Dim book As Workbook '定义一个Workbook变量
On Error Resume Next
Set book = Workbooks("chap16_2.xls")
    If book Is Nothing Then '说明chap14_2.xls没打开
        '打开chap14_2.xls
        Workbooks.Open Filename:=ThisWorkbook.Path + "\chap16_2.xls"
    End If
    Windows("chap16_2.xls").Activate '使chap14_2为当前文档
    Sheets("2月出勤加班统计表").Activate
End Sub
Sub SheetOpen22()
Dim book As Workbook '定义一个Workbook变量
On Error Resume Next
Set book = Workbooks("chap16_2.xls")
    If book Is Nothing Then '说明chap14_2.xls没打开
        '打开chap14_2.xls
        Workbooks.Open Filename:=ThisWorkbook.Path + "\chap16_2.xls"
    End If
    Windows("chap16_2.xls").Activate '使chap14_2为当前文档
    Sheets("2月销售业绩表").Activate
End Sub
Sub SheetOpen23()
Dim book As Workbook '定义一个Workbook变量
On Error Resume Next
Set book = Workbooks("chap16_2.xls")
    If book Is Nothing Then '说明chap14_2.xls没打开
        '打开chap14_2.xls
        Workbooks.Open Filename:=ThisWorkbook.Path + "\chap16_2.xls"
    End If
    Windows("chap16_2.xls").Activate '使chap14_2为当前文档
    Sheets("2月销售部工资表").Activate
End Sub


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值