excel - 从一个工作表复制动态数据范围(来自数据透视表)并粘贴到另一个工作表
问题描述
我在工作表 2 上有一个宏按钮,在工作表 1 上有我的数据(数据透视表)。我想要:
- 按下工作表2上的宏按钮
- 宏清除数据透视表并选择 worksheet1 上的某个字段
- 复制 worksheet1 上的数据透视表
- 粘贴到 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 复制数据,因为它是活动表。
谢谢。
解决方案
如果要复制整个数据透视表,可以使用它的 TableRange1 属性。
With worksheet1.PivotTables("inventoryPivot")
.ClearAllFilters
.PivotFields("Type").CurrentPage = "REGIONAL"
.TableRange1.Copy
End With
请注意,如果您有页面字段并且您还想复制这些字段,请将 TableRange1 替换为 TableRange2。
推荐阅读
- verilog - TestBench I2C SDA 不会变低
- typescript - 函数不等待订阅获取信息
- cloud-foundry - Tanzu 中 https://console.run.pivotal.io/ 的替代方案是什么
- docker - 从客户端通过 dockerized openvpn 到达 docker 容器
- vue.js - VueJS - 长时间运行 API 调用的拦截器
- kubernetes - 在 Kubernetes 中,你可以拥有多少个命名空间?
- swift - 没有从字典数组中获取数据
- laravel - Laravel 5.3 使用 cloudflare 在 Centos 7 (cpanel) 上运行。post表单未提交到laravel项目代码
- android - 如何使用不同的数据创建同一个小部件的多个实例?
- java-8 - 我如何使用 java 8 启动 Sonar Qube