excel 如何等待BEx分析仪刷新结束?

roqulrg3  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(158)

我试图创建一个宏,它打开一个文件,刷新SAP BW查询中的数据,然后保存并关闭。
当前宏会启动刷新,但在完成之前会转到“保存并关闭”命令,因此不会发生任何更改。
我已经看到,有办法关闭'暂停'或'睡眠'一段时间,让命令完成,但我希望扩大这个宏打开多个工作簿的查询,需要不同的时间来刷新,因此这将是最后的手段。我现在用的是DoEvents,但似乎也不太好用。
注意:刷新通过SAP BEx Analyzer 7进行。
我的代码:

Sub OpenAndRefresh()
    Workbooks.Open "QueryRefresh.xls", UpdateLinks:=False
    Workbooks("QueryRefresh.xls").Activate
    Run "BExAnalyzer.XLA!SAPBEXrefresh", True
    DoEvents
    Workbooks("QueryRefresh.xls").Close SaveChanges:=False
End Sub

任何帮助或指导都将不胜感激。

x6492ojm

x6492ojm1#

我有一个宏用于此目的,我从来没有遇到过这个问题:

Public Sub Refresh_All()

Dim filepathstr As String
Dim filename As String
Dim wbk As Workbook

filepathstr = Sheet1.Range("filepath").Value

For Each cell In Sheet1.Range("workbooks")

    If Not cell.Value = "" Then

        filename = cell.Value
        Set wbk = Workbooks.Open(filepathstr & filename)

        ''''**REFRESH**''''''
        SAPBexrefresh (True)

        Application.DisplayAlerts = False
        wbk.Save
        wbk.Close False
        Application.DisplayAlerts = True

    End If

    Next cell

End Sub

这里代码方面的主要区别是我直接调用刷新宏而不是使用Run命令。
编辑:要使此工作,您还需要在您的项目中添加“BExAnalyzer”引用。如果您不熟悉添加引用,则需要进入Tools --> References,然后从可用引用的长列表中单击“BExAnalyzer”。
我不知道为什么这会有什么不同,但正如我所说,我总是发现我的宏在继续之前完成刷新(即使这需要长达15分钟)。我也在用BEx 7

相关问题