打开另一本工作簿,具体表单运行时错误'9':下标超出范围

时间:2018-03-07 16:41:23

标签: excel vba excel-vba

我有2个excel文件

  1. 的stage1
    1. 菜单
    2. 数据
  2. 的stage2
    1. 计算
    2. 图表
  3. 我正试图从这两个文件来回跳转,链接到它跳转到的工作簿的某些表。

    Option Explicit
    
    Dim stage1 As Workbook
    Dim stage2 As Workbook
    
    Sub Open_stage1_Menu()
    
        Set stage1 = Workbooks.Open(ActiveWorkbook.Path & "\stage1.xlsm")
        stage1.Sheets("Menu").Activate
    
    End Sub
    
    Sub Open_stage1_Data()
    
        Set stage1 = Workbooks.Open(ActiveWorkbook.Path & "\stage1.xlsm")
        stage1.Sheets("Data").Activate
    
    End Sub
    
    Sub Open_stage2_Calculation()
    
        Set stage2 = Workbooks.Open(ActiveWorkbook.Path & "\stage2.xlsm")
        stage2.Sheets("Calculation").Activate
    
    End Sub
    
    Sub Open_stage2_Charts()
    
        Set stage2 = Workbooks.Open(ActiveWorkbook.Path & "\stage2.xlsm")
        stage2.Sheets("Charts").Activate
    
    End Sub
    

    所有宏都存储在stage1工作簿中。我已经实现了按钮来浏览工作表,但跳转到stage2会导致错误(下标超出范围)但不会导致阶段1。

1 个答案:

答案 0 :(得分:1)

删除所有工作簿。打开代码行 你只需要打开" stage2"工作簿一次。 " stage1"工作簿已经开放。您可以使用按钮打开" stage2"工作簿或常规模块。

在stage1工作簿中创建这些宏

Sub Open_stage1_Menu()
    Workbooks("stage1.xlsm").Sheets("Menu").Activate
End Sub

Sub Open_stage1_Data()
    Workbooks("stage1.xlsm").Sheets("Data").Activate
End Sub

Sub Open_stage2_Calculation()
    Workbooks("stage2.xlsm").Sheets("Calculation").Activate
End Sub

Sub Open_stage2_Charts()
    Workbooks("stage2.xlsm").Sheets("Charts").Activate
End Sub

在stage1工作簿,工作表"菜单"中添加一个新按钮并选择" Open_stage2_Calculation"

在stage1工作簿中添加另一个按钮,工作表"菜单"并选择" Open_stage2_Charts"

您还可以将这两个按钮添加到另一个工作表"数据"

转到stage2工作簿;

在stage2工作簿,工作表中添加一个新按钮" Calculation&#34 ;;在"分配宏中使用"宏在:下拉菜单中选择" stage1"工作簿并选择" Open_stage1_Menu"

在stage2工作簿中添加另一个按钮,工作表"计算" ;在"分配宏中使用"宏在:下拉菜单中选择" stage1"工作簿并选择" Open_stage1_Data"

您还可以将这两个按钮添加到另一个stage2工作表" Charts"