Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Application.CalculateUntilasyncQueriesExcel_Excel_Vba_Powerbi_Powerpivot - Fatal编程技术网

Application.CalculateUntilasyncQueriesExcel

Application.CalculateUntilasyncQueriesExcel,excel,vba,powerbi,powerpivot,Excel,Vba,Powerbi,Powerpivot,我有一个OLAP数据模型,发布在Power BI服务上。我使用CUBE公式构建了一个报告。我需要根据CUBEVALUE结果隐藏和显示一些列。我需要打印一大堆切片器选择的PDF。当然,我需要VBA Sub等待所有CUBE公式刷新完成 我知道,应用程序.CalculateUntilAsyncQueriesDone方法将允许我等待刷新完成。然而,在2016年的Excel中,它似乎使Excel崩溃。它只是无限期地等待 Excel版本:Microsoft Excel for Microsoft 365 M

我有一个OLAP数据模型,发布在Power BI服务上。我使用
CUBE
公式构建了一个报告。我需要根据
CUBEVALUE
结果隐藏和显示一些列。我需要打印一大堆切片器选择的PDF。当然,我需要VBA Sub等待所有
CUBE
公式刷新完成

我知道,
应用程序.CalculateUntilAsyncQueriesDone
方法将允许我等待刷新完成。然而,在2016年的Excel中,它似乎使Excel崩溃。它只是无限期地等待

Excel版本:Microsoft Excel for Microsoft 365 MSO(16.0.13001.20254)64位

我在Power Query查询中遇到了同样的问题,但在调用
应用程序之前,将所有查询的
BackgroundQuery
属性设置为
FALSE
。CalculateUntilAsyncQueriesDone
解决了崩溃问题。不幸的是,对于OLAP数据连接,
BackgroundQuery
属性不能设置为
FALSE

以下技术也不起作用:

Do Until Application.CalculationState = xlDone
Loop
刷新开始有点晚,在此期间,
应用程序.CalculationState
xlDone
,代码甚至不等待刷新开始。如果使用
Application.Wait
方法,查询也会等待刷新

这是我电脑上的吗?或者,你们是否都面临着应用程序的问题。CalculateUntilAsyncQueriesDone?
您是如何解决这个问题的?

我也遇到过类似的问题,但我所有问题的共同点是,
应用程序。当触发
CalculationAntilasyncqueriesDone
时,Calculation
被设置为
xlCalculationManual
。在此之前,我尝试了一系列的
Calculate
CalculateFull
CalculateFullRebuild
,但都没有成功

要使脚本正常工作,您可能需要实现以下内容:

    With Application
        .Calculation = xlCalculationAutomatic
        .CalculateUntilAsyncQueriesDone

        Do Until .CalculationState = xlDone
        Loop
        
        .Calculation = xlCalculationManual
    End With