如何在将pivottable转换为公式后显示所有单元格内容?

时间:2014-03-13 12:37:15

标签: vba excel-vba pivot-table excel

我想"压扁"通过ConvertToFormulas函数的数据透视表,并将结果复制到剪贴板。

我的代码看起来像这样:

ActiveSheet.PivotTables(1).ConvertToFormulas True
Range("A1").Select
ActiveCell.CurrentRegion.Select
Application.CutCopyMode = False
Selection.Copy

我的问题是,当我的#GETTING_DATA执行时,并非所有单元格都从数据源完全加载(它们显示Selection.Copy)并且我在剪贴板中留下包含文本的单元格" #GETTING_DATA"

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

我试图添加

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

Sleep(10000)

Copy之前,但是接缝会阻塞完成单元格加载的线程,并且在10秒后我得到相同的结果。

1 个答案:

答案 0 :(得分:1)

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

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