某些工作表的刷新数据透视表失败
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
我想刷新 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