Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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
复制的数据透视表上缺少VBA数据_Vba_Excel - Fatal编程技术网

复制的数据透视表上缺少VBA数据

复制的数据透视表上缺少VBA数据,vba,excel,Vba,Excel,我正在Excel中编写VBA代码。第一个透视表由VBA生成,运行良好。但是,我需要更多基于相同数据源、具有不同行或列项的透视表。我试图将第一个数据透视表复制到单元格L8,但是粘贴后,新数据透视表中的数据消失。当我手动刷新透视表时,数据再次出现。这是我的密码- wsPvtTbl.PivotTables("PivotTable1").TableRange2.Copy Destination:=wsPvtTbl.Range("L8") 这是第二个透视表的屏幕截图 有办法解决吗?谢谢 *****更新

我正在Excel中编写VBA代码。第一个透视表由VBA生成,运行良好。但是,我需要更多基于相同数据源、具有不同行或列项的透视表。我试图将第一个数据透视表复制到单元格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”,结果成功了。然而,当我把它放进原来的潜艇时,它就不再工作了。