如何在VBA中刷新数据透视表

时间:2018-07-17 02:13:49

标签: vba

我尝试使用以下脚本刷新VBA中的数据透视表

Sub Main
Application.Workbooks.Open("D:\IT_Routines\PivotTables\SalesAnalysis_AU_TLO.xlsx",,,,"ACASales",,,,,,,,,,)
 Rem Application.Visible = True
  Rem Windows("SalesAnalysis_AU_TLO.xlsx").Activate
  Rem Application.ActiveWorkbook.Sheets("SalesAnalysis").Select
  Rem  Application.ActiveSheet.PivotTables("SalesAnalysis").PivotCache.Refresh
   Application.ActiveWorkbook.RefreshAll()
   Application.ActiveWorkbook.Save()
End Sub

当我在Automate 11中运行此命令时,语法错误显示为[Main](第1步)语法错误,可能在函数调用中缺少必需的参数

2 个答案:

答案 0 :(得分:2)

我解决了这个问题。 VBA代码不存在问题,我的excel文件中启用了“启用后台刷新”属性。要解决此问题,“转到数据标签,在连接组中单击连接,单击每个连接,然后单击属性,选中“启用后台刷新”复选框。

答案 1 :(得分:1)

设置工作簿,以便您可以直接引用对象而不是依靠ActiveWorkbook。这也将允许您使用With块,从而使代码更简洁,更容易理解。

Sub Main ()
Dim MyBook As Workbook
Set MyBook = Workbooks.Open("D:\IT_Routines\PivotTables\SalesAnalysis_AU_TLO.xlsx", Password:="ACASales")

'Application.ScreenUpdating = False
'Application.DisplayAlerts = False

With MyBook
    .RefreshAll
    .Save
End With

'Application.ScreenUpdating = True
'Application.DisplayAlerts = True
End Sub

我还建议您在完成此项工作后将Screen UpdatingAlerts关闭,以加快处理速度。代码在这里,刚刚注释掉,供您在完成时添加回去。


如果要保存并关闭工作簿,请将.Save更改为.Close True

相关问题