Vba 如何在将数据透视表转换为公式后等待所有单元格内容显示出来?

Vba 如何在将数据透视表转换为公式后等待所有单元格内容显示出来?,vba,excel,pivot-table,Vba,Excel,Pivot Table,我想通过ConvertToFormulas函数“展平”数据透视表,并将结果复制到剪贴板中 我的代码如下所示: ActiveSheet.PivotTables(1).ConvertToFormulas True Range("A1").Select ActiveCell.CurrentRegion.Select Application.CutCopyMode = False Selection.Copy 我的问题是,当执行我的选择时,并非所有单元格都从数据源完全加载(它们显示#获取#数据)。复制

我想通过
ConvertToFormulas
函数“展平”数据透视表,并将结果复制到剪贴板中

我的代码如下所示:

ActiveSheet.PivotTables(1).ConvertToFormulas True
Range("A1").Select
ActiveCell.CurrentRegion.Select
Application.CutCopyMode = False
Selection.Copy
我的问题是,当执行我的
选择时,并非所有单元格都从数据源完全加载(它们显示
#获取#数据
)。复制
,剪贴板中的单元格包含文本“#获取#数据”

我想找到一种方法,等待所有单元格加载,或者至少等待10秒,直到(希望)所有单元格加载。

我试图补充一点

Application.Wait(Now + TimeValue("0:00:10"))


Copy
之前,但是这会阻塞线程,在线程上加载单元格,10秒后我会得到相同的结果。

没有构建pivot表来测试结果,但看看下面的代码是否有帮助。我们的想法是在选定的单元格中不断循环,直到所有单元格都是整数,然后复制它:

Sub test()
Dim pcced As Boolean
pcced = False
ActiveCell.CurrentRegion.Select

Do While pcced = False
pcced = chkv(Selection)
Loop

Application.CutCopyMode = False
Selection.Copy    
End Sub


Function chkv(s As Variant) As Boolean
Dim rslt As Boolean
For Each cell In s
If IsNumeric(cell) Then
    rslt = True
Else:
    rslt = False
    Exit For
End If
Next
chkv = rslt
End Function

好主意。我已经根据我的需要修改了你的代码,我的宏现在更加可靠了。我已将修改后的代码编辑到您的答案中,以备您需要更新。我对您的代码遇到的最重要的问题是,它没有考虑到数据透视表中的行和列标签不是数字。经过更仔细的检查,此解决方案不起作用:(Excel VBA是。检查单元格使此线程保持忙碌状态,并且不会延迟更新
多维数据集*
公式。如果在迭代之间调用
DoEvents
,Excel GUI将保持响应,但公式仍然不更新。@Andris是的,我没有仔细考虑单线程问题,在那里它是结果与sleep()或wait()相同。我会在找到答案后尽快更新答案(正在工作)=同时,我知道一种可以尝试的方法,但我今天没有时间测试它-在excel中创建一个批处理文件来调用converttoformula函数,然后使用一个函数调用此批处理文件。这样,它将等待转换完成,然后继续下一步step@Andris嗨,我想知道你有没有找到另一种方法来解决这个问题?这两天我很忙,无法跟进
Sub test()
Dim pcced As Boolean
pcced = False
ActiveCell.CurrentRegion.Select

Do While pcced = False
pcced = chkv(Selection)
Loop

Application.CutCopyMode = False
Selection.Copy    
End Sub


Function chkv(s As Variant) As Boolean
Dim rslt As Boolean
For Each cell In s
If IsNumeric(cell) Then
    rslt = True
Else:
    rslt = False
    Exit For
End If
Next
chkv = rslt
End Function