EXCEL VBA:如何将多个不同的macros组合成一个主macros?

我还是VBA的新手,一直在试图创build一个执行多个子macros的macros。 我在这个过程中遇到很多困难。 每次我运行我的代码,我得到:

错误1004:“应用程序”或“对象”定义的错误。

这是我的macros代码:

Sub CreatePivotTable() Dim sheet As Worksheet Set sheet = Worksheets("mac3") Sheets.Add.Name = "Table" ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ sheet.UsedRange, Version:=xlPivotTableVersion14). _ CreatePivotTable TableDestination:="Table!R3C1", TableName:="Pvt" _ , DefaultVersion:=xlPivotTableVersion14 Sheets("Table").Select Cells(3, 1).Select With ActiveSheet.PivotTables("Pvt").PivotFields("Gas") .Orientation = xlColumnField .Position = 1 End With With ActiveSheet.PivotTables("Pvt").PivotFields("Dash") .Orientation = xlRowField .Position = 1 End With ActiveSheet.PivotTables("Pvt").AddDataField ActiveSheet.PivotTables( _ "Pvt").PivotFields("Qty"), "Sum of Qty", xlSum Range("B4").Select Selection.Group Start:=True, End:=True, Periods:=Array(False, False, False, _ False, True, False, False) End Sub 

你调用macros很好,这个问题很可能是其中一个macros。

一步一步运行你的runall子程序,然后你会看到哪一个抛出错误。

如果在单独运行时,没有一个潜水艇会发生错误,则在两个有问题的呼叫之间添加一些延迟。

你有没有尝试把下一个macros的调用放在前一个macros的End Sub之前,所以你的第一个macrosCombineWorkbooks的最后一行看起来像下面那样。 而不是在开始时全部打电话给他们。

 ActiveWindow.SmallScroll Down:=-12 '7:Locate the dates two lines above this line.Update the dates to the last day of the months from which you want data from the stated worksheet from workbook1 Call AddWorksheet End Sub 

如果你做了所有的副公共潜艇,它也会有所作为吗?