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

时间:2014-07-09 16:52:57

标签: excel vba epm

我有一张工作簿,大约有50张要按照一定的顺序刷新(以避免#rfr错误,因为这些纸张彼此叠加)。

刷新是通过EPM add in for Excel完成的。我已激活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。

2 个答案:

答案 0 :(得分:0)

为什么不在数组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

答案 1 :(得分:0)

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

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