Home > Enterprise >  Refresh pivot for some sheets fails
Refresh pivot for some sheets fails

Time:10-02

I want to refresh some pivots in excel which has many pivots in the workbook. Say sheet A & B has pivots and want to refresh the same -

Pls let me knwo if the below is correct - I am getting an error "Invalid use of property"

Sub Refreshsomepivot()

    Dim vSheet As Worksheet
    Dim vSheets As Worksheets
    Dim pt As PivotTable
    vSheets = Array("A, B")
    For Each vSheet In vSheets
        MsgBox (vSheet.name)
            For Each pt In Sheets(vSheet).PivotTables
                pt.RefreshTable
            Next pt
    Next vSheet
End Sub

CodePudding user response:

You are mixing Worksheets and Worksheet names. Your Array is meant to be an array of worksheet names, not an array of worksheets (Worksheets, btw, is a Collection, not an array).
Furthermore, your array is not an array of 2 elements, it's has only one element as your comma in withing the string - it needs to be Array("A", "B")

On more point you need to know is that Array returns an array of Variant, not String, therefore you need to declare it as such. If you loop over such an array, the "running" variable needs be be declared also as Variant.

Have a look to the following code:

Dim vSheetNames() As Variant, vSheetName As Variant

vSheetNames = Array("A", "B")
For Each vSheetName In vSheetNames
    Dim vSheet As Worksheet
    Set vSheet = ThisWorkbook.Sheets(vSheetName)
    MsgBox vSheet.Name
    Dim pt As PivotTable
    For Each pt In vSheet.PivotTables
        pt.RefreshTable
    Next
Next
      
  • Related