我有一个多维数据集连接到excel中的轴心点。在一个单元格中,我通过以下公式显示“最新更新”值:
=CUBEVALUE("CUBE NAME";"[Measures].[Last Data Update]")excel从多维数据集中获取更新时间并更新单元格需要5-10秒。因此,如果我在紧跟其后关闭工作簿,当我重新打开该工作簿时,它将只显示n/a。
我已经安排这个wb通过另一个每天运行的wb自动更新(在其他wb中)。这样我就得到了n/a问题。我看到了两个我不知道如何找到的解决方案:
1,暂停宏10秒,以便它可以正确获取日期。-我已经尝试了等待和睡眠Vba,但这也会暂停计算。-有没有办法只暂停宏的执行?
2 .通过vba获取更新日期,然后打印到单元格。-我不知道该怎么做我已经找过了,但没有找到任何替代方案。-有人知道这是如何实现的吗?
谢谢Elias
已解决:
我只想分享我的解决方案。找到了处理OLAP数据源的CalculateUntilAsyncQueriesDone方法:
Application.CalculateUntilAsyncQueriesDone
Do While Application.CalculationState <> xlDone
DoEvents
Loop更多信息请点击此处:https://msdn.microsoft.com/en-us/library/office/ff821008.aspx
发布于 2016-08-11 14:25:29
我只想分享我的解决方案。找到了处理OLAP数据源的CalculateUntilAsyncQueriesDone方法:
Application.CalculateUntilAsyncQueriesDone
Do While Application.CalculationState <> xlDone
DoEvents
Loop更多信息请点击此处:https://msdn.microsoft.com/en-us/library/office/ff821008.aspx
发布于 2016-08-11 13:41:20
试试我多年前写的这个等待代码。这将等待指定的秒数,并让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 Subhttps://stackoverflow.com/questions/38878175
复制相似问题