某些工作表的刷新数据透视表失败

Refresh pivot for some sheets fails

我想刷新 excel 中的一些枢轴,它在工作簿中有很多枢轴。说 sheet A 和 B 有枢轴并且想要刷新相同的 -

请告诉我以下内容是否正确 - 我收到错误消息“无效使用 属性”

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

您正在混合使用工作表和工作表名称。您的数组是工作表名称数组,而不是工作表数组(Worksheets,顺便说一句,是 Collection,不是数组)。
此外,您的数组不是 2 个元素的数组,它只有一个元素作为您在字符串中的逗号 - 它需要是 Array("A", "B")

还有一点你需要知道的是 Array returns 是 Variant 的数组,而不是 String,因此你需要这样声明它。如果遍历这样的数组,“运行”变量也需要声明为 Variant。

看看下面的代码:

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