2013-06-19 7 views
1

У меня есть макрос, чтобы изменить источник Pivot во всех листах. В моей книге есть листы с именем CityName, например «Mumbai» (который представляет собой сводный лист) и исходный лист данных с именем «MumbaiData» (который является исходным текстом). Появляется сообщение об ошибке. Bcz когда-то у меня нет исходного файла. Как я мог бы справиться с этой ошибкой, чтобы возобновить в Pivot следующего листа,Ошибка обработки в исходном обновлении Pivot

Мой код

Sub pivotsourcechange() 


Dim ws As Worksheet 
Dim pt As PivotTable 

For Each ws In ActiveWorkbook.Worksheets 
For Each pt In ws.PivotTables 
ws.PivotTableWizard SourceType:=xlDatabase, SourceData:=Worksheets(ActiveSheet.Name & " PV").UsedRange 
Next pt 
Next ws 
End Sub 
+0

Чтобы быть ясным, если лист не существует, вы не хотите, чтобы сводная таблица вообще менялась? –

ответ

0

Это вообще не очень хорошая идея использовать часто, но On Error Resume Next будет работать нормально здесь:

Sub pivotsourcechange() 

    Dim ws As Worksheet 
    Dim pt As PivotTable 

    On Error Resume Next 
    For Each ws In ActiveWorkbook.Worksheets 
    For Each pt In ws.PivotTables 
     ws.PivotTableWizard SourceType:=xlDatabase, SourceData:=Worksheets(ActiveSheet.Name & " PV").UsedRange 
    Next pt 
    Next ws 
    On Error Goto 0 
End Sub 

Там в много больше, что можно сделать с помощью On Error, включая переход в другое место кода для обработки ошибки и возврата. Обратитесь к этой ссылке для получения информации: http://support.microsoft.com/kb/141571

Смежные вопросы