【发布时间】:2021-09-06 03:44:37
【问题描述】:
我知道我可以使用来自https://peltiertech.com/referencing-pivot-table-ranges-in-vba/ 的优秀教程中的 pt.DataBodyRange.select 引用数据透视表中的所有列,包括总计。但是我想引用除前 3 列之外的所有列。这似乎没有出现在教程中。
到目前为止我所拥有的:我分别引用每一列,然后使用联合函数将它们组合起来,请参见下面的代码,其中 EmployeeID、StartDate、EndDate 是数据透视表中的列标题,Total 是总计列。 这似乎工作正常,但是我想知道它是否可以在一行中完成,而不必单独引用每一列,然后进行范围的联合
Dim EmployeeID As Range
Dim StartDate As Range
Dim EndDate As Range
Dim Total As Range
Dim Rg As Range
Dim pt As PivotTable
Dim TimeSheets() As Variant
Set pt = shPivotTable.PivotTables("ptTimeSheets")
With pt
Set EmployeeID = .PivotFields("EmployeeID").DataRange
Set StartDate = .PivotFields("StartDate").DataRange
Set EndDate = .PivotFields("EndDate").DataRange
Set Total = pt.RowRange.Offset(1, 6).Resize(pt.RowRange.Rows.count - 1)
Debug.Print Total.Address
End With
Set Rg = Union(EmployeeID, StartDate, EndDate, Total)
Debug.Print Rg.Address
【问题讨论】:
标签: excel vba pivot-table