我有一张工作簿,大约有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。
答案 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