繁体   English   中英

如何使用 EPM 引用刷新 Excel 工作簿中的多个工作表(按特定顺序)?

[英]How can I refresh multiple sheets (in specific order) in an Excel workbook using EPM references?

我有一个工作簿,里面有大约 50 张要按特定顺序刷新的工作簿(为了避免 #rfr 错误,因为这些工作表是相互叠加的)。

刷新是通过 Excel 的 EPM 插件完成的。 我已激活 FPMXLclient 函数并尝试编写一些代码。 我对编码和逻辑非常缺乏经验。 在工作簿中,宏需要从最后一个选项卡开始,等待工作表刷新,然后移动到下一个选项卡(依此类推...)。 下面是我编写的一些 VBA 代码的示例:

    Dim refreshList
        refreshList = Array("BS Analytic", "Balance Sheet")
        'There are more than just the 2 in the array (~50)
    Sub test_loop()
        Dim I
        For I = LBound(refreshList) To UBound(refreshList)
        MsgBox refreshList(I)
        Next I
    End Sub
    'Vba to refresh data
    Dim client As New EPMAddInAutomation
    Sub Refresh_Click()
        client.Refresh
    End Sub
    Sub AFTER_REFRESH()
        MsgBox "done"
    End Sub

其他信息:这也涉及 BPC 和 SAP。

假设您的插件刷新了活动工作表,循环中的类似内容可能会起作用:

Dim Sh As Worksheet
Set Sh = WorkSheets(RefreshList(I))
Sh.Activate
Client.Refresh

为什么不在数组refreshList包含每个工作表编号,然后For each I in refreshList使用For each I in refreshList 然后将按照每次更新的顺序传播refreshList 如果它也从最后一张纸向后移动,您始终可以执行以下操作:

Sub Refresh_Click

Dim refreshList() As Integer
reDim refreshList(50)
for i = 0 to 49
    refreshList(i) = 50 - i
next
For each I in refreshList
    Sheets(I).EnableCalculation = false
    Sheets(I).EnableCalculation = true
Next
MsgBox "Done"

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM