Application.Run为一个工作簿而不是另一个工作簿

时间:2015-09-25 12:21:02

标签: excel vba excel-vba

所以我有一个包含大量数据的工作簿,任何新数据都必须放在两个不同的工作簿之一(2015年和2016年)。我在主工作簿上编写了一个宏来决定每个新数据需要去哪两个目标工作簿,并将数据写在目标工作簿的空白页上。

现在,对于2015年和2016年,我编写了一个宏,它完全按照我的意愿执行,代码完全相同(应该是这样),但是当我尝试从主要调用宏时工作簿仅适用于2016年,而非2015年。

我用来从主工作簿运行宏的方法是:

Application.Run ("'2015.xlsm'!MAIN")

其中MAIN是两个目标工作簿上宏的名称,如下所示。

Global WS As Worksheet, NS As Worksheet

Sub MAIN()

    Set WS = Sheets(55)
    Set NS = Sheets(56)

    NS.Cells.Clear

    Dim n As Integer
    n = WS.Cells(60000, 1).End(xlUp).Row
    ' Number of orders to add/change

    If n = 0 Then Exit Sub

    CleanUp (n)
    AddOrders (n)
    UpdateChassis (n)

    WS.Cells.Clear

End Sub

CleanUpAddOrdersUpdateChassis都只是其他潜艇。

在2015工作表上手动运行MAIN可以正常工作,而不是从主工作簿中调用它时。

有人可以向我解释为什么会发生这种情况,以及如何解决这个问题?

0 个答案:

没有答案