我有一个OLAP数据模型,它发布在Power服务上。我使用CUBE
公式构建了一个报告。我需要根据CUBEVALUE
结果隐藏和显示列。我需要打印一整堆切片选择的PDF格式。当然,我需要我的VBA等待直到所有的CUBE
公式完成刷新。
我知道Application.CalculateUntilAsyncQueriesDone
方法会让我等到刷新完成。然而,在excel 2016中,它似乎让Excel崩溃了。它只是在无限期地等待。
Excel版本:MicrosoftExcelforMicrosoft365MSO (16.0.13001.20254) 64位
我在Power查询中也遇到了同样的问题,但是在调用BackgroundQuery
之前将所有查询的FALSE
属性设置为Application.CalculateUntilAsyncQueriesDone
解决了崩溃问题。不幸的是,对于OLAP数据连接,BackgroundQuery
属性不能设置为FALSE
。
以下技术也不起作用:
Do Until Application.CalculationState = xlDone
Loop
刷新开始得有点晚,在此期间,Application.CalculationState
是xlDone
,而代码只是不等待刷新启动。如果使用Application.Wait
方法,查询也将等待刷新。
就在我的电脑上吗?或者,你们都面临着Application.CalculateUntilAsyncQueriesDone
的问题吗?你是如何解决这个问题的?
发布于 2020-09-30 01:48:16
我也有过类似的问题,但我所有问题的共同点是,当触发Application.Calculation
时,CalculateUntilAsyncQueriesDone
被设置为xlCalculationManual
。在此之前,我尝试了一系列的Calculate
、CalculateFull
和CalculateFullRebuild
,但都没有结果。
您可能需要实现如下内容才能使您的脚本工作:
With Application
.Calculation = xlCalculationAutomatic
.CalculateUntilAsyncQueriesDone
Do Until .CalculationState = xlDone
Loop
.Calculation = xlCalculationManual
End With
https://stackoverflow.com/questions/62978078
复制相似问题