首页 > 解决方案 > 为什么我不能从另一个工作表的数据透视表中选择第一行数据范围?

问题描述

带有数据透视表的工作表被命名Pivot,数据透视表被命名为PivotTable3

Dim pt As PivotTable
Set pt = Sheets("Pivot").PivotTables("PivotTable3")

Worksheets("Pivot").Activate
pt.PivotFields("Row Labels").DataRange.Select
Selection.Copy

我认为这会为我选择第一行。但是我遇到了错误“1004”。

标签: excelvba

解决方案


不确定你想要什么范围。尝试其中之一:

Worksheets("Pivot").PivotTables("PivotTable3").TableRange1.Rows(1)
Worksheets("Pivot").PivotTables("PivotTable3").TableRange2.Rows(1)
Worksheets("Pivot").PivotTables("PivotTable3").DataBodyRange.Rows(1)
Worksheets("Pivot").PivotTables("PivotTable3").RowRange.Rows(1)

或者也许像 Application.Intersect(Worksheets("Pivot").PivotTables("PivotTable3").TableRange1, Worksheets("Pivot").PivotTables("PivotTable3").DataBodyRange.Rows(1).EntireRow)

顺便说一句,以下方法将被禁止(实际上,所有有 VBA 经验的人都会避免它):

SomeSheet.Activate
MyRange.Select
Selection.DoSomeAction

相反,只需执行MyRange.DoSomeAction.

这将更流畅,屏幕上没有闪烁。


推荐阅读