Вы хотите отобразить сообщение об ошибке только при наличии ошибки. Кроме того, вы можете проверить, произошла ли ошибка при назначении объекта сводной таблицы:
Sub RefreshAllPivots()
On Error GoTo ErrHandler
Dim pt As PivotTable
For Each pt In ActiveSheet.PivotTables
pt.RefreshTable
Next pt
ErrHandler:
If err Then
If Not pt Is Nothing Then
MsgBox "Error Refreshing " & pt.Name
Else
MsgBox "Unexpected error"
End If
Else
MsgBox "All Pivots Refreshed"
End If
End Sub
Обратите внимание, что я переименовал вашу pivotTable
переменную в pt
- не рекомендуется использовать зарезервированные слова в качестве имен переменных.