错误生成后如何继续macros

我有一个MS Excelmacros创build了一些数据透视表。 问题是,如果我筛选的值不再存在,则会生成一个错误,并停止macros(其余的数据透视表不会生成)。 违规行是:

ActiveSheet.PivotTables("PivotTable2").PivotFields("Test Cycle").CurrentPage = _ "SIT Cycle 2" 

如果“SIT Cycle 2”今天没有错误,那么它将不在源数据中,并且在macros中抛出错误。 相反,我想在活动工作表上打印“无”并继续。 macros将最终创build大约十个单独的数据透视表。

macros是:

 ' ' Cycle_2_Severity_by_Status Macro ' ' Sheets.Add ActiveSheet.Name = "Cycle 2 Severity by Status" ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "Table_owssvr__1", Version:=xlPivotTableVersion15).CreatePivotTable _ TableDestination:="'Cycle 2 Severity by Status'!R3C1", TableName:="PivotTable2", DefaultVersion _ :=xlPivotTableVersion15 Sheets("Cycle 2 Severity by Status").Select Cells(3, 1).Select With ActiveSheet.PivotTables("PivotTable2").PivotFields("Status") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("PivotTable2").PivotFields("Severity") .Orientation = xlColumnField .Position = 1 End With ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _ "PivotTable2").PivotFields("SIR ID"), "Count of SIR ID", xlCount With ActiveSheet.PivotTables("PivotTable2").PivotFields("Test Cycle") .Orientation = xlPageField .Position = 1 End With ActiveSheet.PivotTables("PivotTable2").PivotFields("Test Cycle"). _ ClearAllFilters ActiveSheet.PivotTables("PivotTable2").PivotFields("Test Cycle").CurrentPage = _ "SIT Cycle 2" Sheets("owssvr (1)").Select Range("A2").Select ' ' SIT_CR_Severity_by_Status Macro ' ' Sheets.Add ActiveSheet.Name = "SIT CR Severity by Status" ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "Table_owssvr__1", Version:=xlPivotTableVersion15).CreatePivotTable _ TableDestination:="'SIT CR Severity by Status'!R3C1", TableName:="PivotTable2", DefaultVersion _ :=xlPivotTableVersion15 Sheets("SIT CR Severity by Status").Select Cells(3, 1).Select With ActiveSheet.PivotTables("PivotTable2").PivotFields("Status") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("PivotTable2").PivotFields("Severity") .Orientation = xlColumnField .Position = 1 End With ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _ "PivotTable2").PivotFields("SIR ID"), "Count of SIR ID", xlCount With ActiveSheet.PivotTables("PivotTable2").PivotFields("Test Cycle") .Orientation = xlPageField .Position = 1 End With ActiveSheet.PivotTables("PivotTable2").PivotFields("Test Cycle"). _ ClearAllFilters ActiveSheet.PivotTables("PivotTable2").PivotFields("Test Cycle").CurrentPage = _ "SIT CR" Sheets("owssvr (1)").Select Range("A2").Select 

http://support.microsoft.com/en-us/kb/141571 Glun是正确的你必须看看On Error句柄。