vba使用公式获取多维数据集更新时间需要延迟macros执行
我有一个连接到Excel中的枢轴的立方体。 在一个单元格中,我用这个公式显示“最新更新”的值:
=CUBEVALUE("CUBE NAME";"[Measures].[Last Data Update]")
Excel需要5-10秒才能从立方体获取更新时间并更新单元格。 因此,如果我在重新打开工作簿后直接closures工作簿,那么只会说n / a。
我已经安排这个wb通过另一个计划每天运行的wb自动更新(和其他wbs)。 因此,我得到了不适用的问题。 我看到两个解决scheme,我不知道如何去:
1,暂停10秒的macros,以便能正确的得到date。 – 我已经尝试了等待和睡眠VBA但这也暂停计算。 – 有什么办法只是暂停macros执行?
2,获取vba的更新date,然后打印到一个单元格。 – 我不知道如何做到这一点。 我已经search,但没有find任何其他select。 – 有谁知道如何做到这一点?
感谢Elias
解决了:
只是想分享我的解决scheme。 find处理OLAP数据源的CalculateUntilAsyncQueriesDone方法:
Application.CalculateUntilAsyncQueriesDone Do While Application.CalculationState <> xlDone DoEvents Loop
更多信息: https : //msdn.microsoft.com/en-us/library/office/ff821008.aspx
尝试多年前写的这个Wait代码。 这将等待指定的秒数,让Excel计算它的公式。 只需将10
改为任何你想要的数字。
Sub Sample() ' '~~~> Rest of your code ' Wait 10 '<~~ Wait for 10 secs ' '~~~> Rest of your code ' End Sub Private Sub Wait(ByVal nSec As Long) nSec = nSec + Timer While nSec > Timer DoEvents Wend End Sub
只是想分享我的解决scheme。 find处理OLAP数据源的CalculateUntilAsyncQueriesDone方法:
Application.CalculateUntilAsyncQueriesDone Do While Application.CalculationState <> xlDone DoEvents Loop
更多信息: https : //msdn.microsoft.com/en-us/library/office/ff821008.aspx