在Excel VBA中自动化Omniture报表生成器刷新

时间:2015-02-19 01:48:59

标签: excel vba excel-vba adobe-analytics

我有一个excel 2010工作簿,其中包含几个Adobe Omniture Report Builder(5.0.50.0)查询。我在VBA中通过此工作簿的电子邮件编写了更新和分发脚本,但我无法刷新报表生成器部分。

Adob​​e提供以下不起作用的代码;

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

改变成功'从boolean到String允许它运行但它仍然没有刷新任何东西。我还尝试将Adobe.ReportBuilder.Bridge工作表函数称为;

Application.Run ("AsyncRefreshAll")

再次没有效果。我能够刷新报告的唯一方法是调用功能区的报告生成器加载项的刷新按钮的执行方法,并猜测它需要运行多长时间。< / p>

Application.CommandBars("Adobe Report Builder Toolbar").Controls(5).Execute

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

有人知道更好的方法吗?

1 个答案:

答案 0 :(得分:0)

上周我遇到了同样的问题,但现在已经解决了。 你是对的,成功不是布尔值,它是一个字符串。我通知Omniture有关此问题并且他们更改了他们的在线文档(但在最后两个代码中仍存在相同的问题: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问题?