所以我有一个包含大量数据的工作簿,任何新数据都必须放在两个不同的工作簿之一(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
CleanUp
,AddOrders
和UpdateChassis
都只是其他潜艇。
在2015工作表上手动运行MAIN
可以正常工作,而不是从主工作簿中调用它时。
有人可以向我解释为什么会发生这种情况,以及如何解决这个问题?