复制的数据透视表上缺少VBA数据
我正在Excel中编写VBA代码。第一个透视表由VBA生成,运行良好。但是,我需要更多基于相同数据源、具有不同行或列项的透视表。我试图将第一个数据透视表复制到单元格L8,但是粘贴后,新数据透视表中的数据消失。当我手动刷新透视表时,数据再次出现。这是我的密码-复制的数据透视表上缺少VBA数据,vba,excel,Vba,Excel,我正在Excel中编写VBA代码。第一个透视表由VBA生成,运行良好。但是,我需要更多基于相同数据源、具有不同行或列项的透视表。我试图将第一个数据透视表复制到单元格L8,但是粘贴后,新数据透视表中的数据消失。当我手动刷新透视表时,数据再次出现。这是我的密码- wsPvtTbl.PivotTables("PivotTable1").TableRange2.Copy Destination:=wsPvtTbl.Range("L8") 这是第二个透视表的屏幕截图 有办法解决吗?谢谢 *****更新
wsPvtTbl.PivotTables("PivotTable1").TableRange2.Copy Destination:=wsPvtTbl.Range("L8")
这是第二个透视表的屏幕截图
有办法解决吗?谢谢
*****更新*****
我厌倦了在不同的按钮上附加以下代码来刷新数据透视表,结果成功了。我以为它会在同一个子系统中工作,但我不确定为什么它只能单独工作
ThisWorkbook.refreshall
也许你可以试试这样的
Sub CopyPivotTable()
Dim wsPvtTbl As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Set wsPvtTbl = ActiveSheet
wsPvtTbl.PivotTables("PivotTable1").TableRange2.Copy Destination:=wsPvtTbl.Range("L8")
For Each pt In wsPvtTbl.PivotTables
If pt.Name <> "PivotTable1" Then
For Each pf In pt.PivotFields
pf.ClearAllFilters
Next pf
End If
Next pt
End Sub
子数据透视表()
将wsPvtTbl设置为工作表
数据透视表
Dim pf作为数据透视字段
设置wsPvtTbl=ActiveSheet
wsPvtTbl.PivotTables(“数据透视表1”).TableRange2.Copy目标:=wsPvtTbl.Range(“L8”)
对于wsPvtTbl.PivotTables中的每个pt
如果零件名称为“数据透视表1”,则
对于pt.PivotFields中的每个pf
pf.ClearAllFilters
下一个pf
如果结束
下一个pt
端接头
虽然这种情况不应该发生,但在复制数据透视表后,请使用ThisWorkbook.RefreshAll作为下一行。@sktneer谢谢。我添加了ActiveWorkbook.RefreshAll,但是表仍然保持不变。有什么想法吗?感谢您在粘贴后清除新数据透视表的筛选器,即:wsPvtTbl.PivotTables(“数据透视表2”)。ClearAllFilters@RADO谢谢在我将代码放入“应用程序定义或对象定义错误”后,出现了一个错误。我使用了一个虚构的名称“PivotTable2”。您需要将其替换为在“L8”中创建的新透视表的名称。Hi@sktneer我刚刚注意到,如果我逐行运行代码(F8),新透视表将正确显示。但是,当我按F5或单击附加的按钮时,表格将丢失数字。有什么建议吗?谢谢,我已经测试过了,它对我有效。我不确定你那边发生了什么。我在另一个宏中添加了“ThisWorkbook.refreshall”,结果成功了。然而,当我把它放进原来的潜艇时,它就不再工作了。