繁体   English   中英

从一个工作表复制动态数据范围(来自数据透视表)并粘贴到另一个工作表

[英]Copy dynamic data range (from PivotTable) from one worksheet and paste to another sheet

我在工作表 2 上有一个宏按钮,在工作表 1 上有我的数据(数据透视表)。 我想要:

  1. 按下工作表2上的宏按钮
  2. 宏清除数据透视表并选择 worksheet1 上的某个字段
  3. 复制 worksheet1 上的数据透视表
  4. 粘贴到 worksheet2 上的特定单元格

我的宏做了所有事情,但它不复制工作表 1 中的数据,它出于某种原因复制了工作表 2 中的数据。 我在 With 语句中有代码,不知道为什么它从活动表(工作表 2)复制数据。

Sub muniButton()

Application.ScreenUpdating = False

' Refresh PivotTable and copy source data
    
    With worksheet1
        .PivotTables("inventoryPivot").ClearAllFilters
        .PivotTables("inventoryPivot").PivotFields("Type"). _
            CurrentPage = "REGIONAL"
        Range("P5:Q5", Range("P5:Q5").End(xlDown)).Copy
    End With
    
' Pasting source data

    worksheet2.Range("outputCorner").Offset(1, 0).PasteSpecial
    Application.CutCopyMode = False

Application.ScreenUpdating = True   

End Sub

我不包括. 在前面Range("P5:Q5", Range("P5:Q5").End(xlDown)).Copy因为它给出了错误。 这不应该从 worksheet1 复制数据,因为它在 With 语句中吗? 由于某种原因,它从 worksheet2 复制数据,因为它是活动表。

谢谢。

如果要复制整个 pivot 表,可以使用它的 TableRange1 属性。

    With worksheet1.PivotTables("inventoryPivot")
        .ClearAllFilters
        .PivotFields("Type").CurrentPage = "REGIONAL"
        .TableRange1.Copy
    End With

请注意,如果您有页面字段并且您还想复制这些字段,请将 TableRange1 替换为 TableRange2。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM