VBA刷新Pivots

Lal*_*and 6 excel vba excel-vba excel-2010

我正在使用代码来刷新Pivots并且它可以工作,但是我遇到了错误处理程序,它给了我:

未设置块变量的对象变量

这是我正在使用的代码:

Sub RefreshAllPivots()

On Error GoTo Errhandler

  Dim pivotTable As pivotTable
  For Each pivotTable In ActiveSheet.PivotTables
    pivotTable.RefreshTable
  Next

Errhandler:

     MsgBox "Error Refreshing " & pivotTable.Name

MsgBox "All Pivots Refreshed"

End Sub
Run Code Online (Sandbox Code Playgroud)

非常感谢

Oll*_*lly 6

您只想在出现错误时显示错误消息.此外,您可能希望检查在分配pivotTable对象时是否发生了错误:

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
Run Code Online (Sandbox Code Playgroud)

请注意,我将您的pivotTable变量重命名为pt- 使用保留字作为变量名称并不是一种很好的做法.