首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Excel中实现全家具报表生成器刷新的自动化

在Excel中实现全家具报表生成器刷新的自动化
EN

Stack Overflow用户
提问于 2015-02-19 01:48:59
回答 1查看 2.5K关注 0票数 1

我有一个excel 2010工作簿,里面有几个Adobe报表生成器(5.0.50.0)查询。我正在VBA中通过电子邮件编写更新和分发该工作簿的脚本,而且我在获得Report部分刷新时遇到了困难。

Adobe提供了以下不工作的代码;

代码语言:javascript
复制
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工作表函数调用为;

代码语言:javascript
复制
Application.Run ("AsyncRefreshAll")

同样没有效果。我能够刷新报表的唯一方法是调用报表生成器外接程序刷新按钮的执行方法,并猜测运行所需的时间。

代码语言:javascript
复制
Application.CommandBars("Adobe Report Builder Toolbar").Controls(5).Execute

Application.Wait (Now() + TimeValue("00:00:02"))

有人知道有什么更好的办法让这件事成功吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-04 08:55:35

上周我也有过同样的问题,但现在已经解决了。你说得对,成功不是布尔值,而是字符串。我把这件事通知了online,他们修改了他们的在线文档(但在最后两个代码:https://helpx.adobe.com/analytics/kb/visual-basic-macros-reportbuilder.html中仍然存在相同的问题)。

我把微弱的成功变成了一根线,现在它起作用了!下面是我使用的宏:

代码语言:javascript
复制
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问题了?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28597394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档