我尝试使用以下脚本刷新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步)语法错误,可能在函数调用中缺少必需的参数
答案 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 Updating
和Alerts
关闭,以加快处理速度。代码在这里,刚刚注释掉,供您在完成时添加回去。
如果要保存并关闭工作簿,请将.Save
更改为.Close True