我创建了宏,它将刷新工作表中的所有数据透视表。相同的代码在一张纸上有效,但在另一张纸上无效。我尝试在 Debug模式下运行它,对于前几张表来说它工作正常,但在中间的一个表上却出现错误:
Run-time error '1004': RefreshTable method of PivotTable class failed.
此工作表中有 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 所说,一个表的源数据有问题,它使用了 A1 而不是 R1C1 表示法。我在 Excel 选项->公式->R1C1 引用样式中更改了它,现在宏可以工作了。
关于vba - 刷新数据透视表的运行时错误 1004,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34509313/