我有一个excel 2010工作簿,里面有几个Adobe报表生成器(5.0.50.0)查询。我正在VBA中通过电子邮件编写更新和分发该工作簿的脚本,而且我在获得Report部分刷新时遇到了困难。
Adobe提供了以下不工作的代码;
Sub RefreshAllReportBuilderRequests()
Dim addIn As COMAddIn
Dim automationObject As Object
Dim success As Boolean
Set addIn = Application.COMAddIns("ReportBuilderAddIn.Connect")
Set automationObject = addIn.Object
success = automationObject.RefreshAllRequests(ActiveWorkbook)
End Sub将“成功”从布尔值更改为字符串允许运行,但仍然不会刷新任何内容。我还尝试将Adobe.ReportBuilder.Bridge工作表函数调用为;
Application.Run ("AsyncRefreshAll")同样没有效果。我能够刷新报表的唯一方法是调用报表生成器外接程序刷新按钮的执行方法,并猜测运行所需的时间。
Application.CommandBars("Adobe Report Builder Toolbar").Controls(5).Execute
Application.Wait (Now() + TimeValue("00:00:02"))有人知道有什么更好的办法让这件事成功吗?
发布于 2015-03-04 08:55:35
上周我也有过同样的问题,但现在已经解决了。你说得对,成功不是布尔值,而是字符串。我把这件事通知了online,他们修改了他们的在线文档(但在最后两个代码:https://helpx.adobe.com/analytics/kb/visual-basic-macros-reportbuilder.html中仍然存在相同的问题)。
我把微弱的成功变成了一根线,现在它起作用了!下面是我使用的宏:
Sub RBRefresh()
Dim addIn As COMAddIn
Dim automationObject As Object
Dim success As String
Set addIn = Application.COMAddIns("ReportBuilderAddIn.Connect")
Set automationObject = addIn.Object
success = automationObject.RefreshAllRequests(ActiveWorkbook)
End Sub所以我认为这不再是宏观问题了,也许是Excel问题了?
https://stackoverflow.com/questions/28597394
复制相似问题