【发布时间】:2016-04-03 05:38:24
【问题描述】:
我创建了可以刷新工作表中所有数据透视表的宏。相同的代码在一张纸上有效,但在另一张纸上无效。我尝试在调试模式下运行它,它在前几个表中运行良好,在中间有一个表出现错误:
运行时错误“1004”:数据透视表类的 RefreshTable 方法 失败了。
此工作表中有 20 个数据透视表,但有效的数据透视表是 26 个。非常感谢您的帮助。
Sub Refresh_Pivots2()
Dim PL As PivotTable
Worksheets("Incidents Pivots").Activate
For Each PL In ActiveSheet.PivotTables
PL.RefreshTable
Next PL
End Sub
我刚刚尝试了另一个代码
Sub Refresh_Incidents()
Worksheets("Incidents Pivots").Activate
Dim A
A = Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20")
For i = 0 To 19
ActiveSheet.PivotTables(A(i)).RefreshTable
Next i
End Sub
如果我从 i=0 开始,它会给出一个错误,但是当它切换到 i=1 时它可以工作。任何想法这张表有什么问题。我可以手动刷新它。
【问题讨论】:
-
你能手动刷新它们吗?
-
嗨,Rory,是的,我可以手动刷新每个表。
-
那么如果使用 Refresh All 不会报错?
-
一旦我一个一个去刷新然后它就可以工作了。那是你的意思吗?
-
这很奇怪,因为 SourceData 应该以 R1C1 表示法返回引用,而不是 A1。你能运行:
ActiveSheet.PivotTables(1).SourceData = 'Data Dump'!C1:C14,然后刷新数据透视表而不会出错吗?
标签: vba excel refresh pivot-table