无论如何,都可以使用excel vba从数据透视表中获取总和列的范围。我指的范围在下面的屏幕快照中,突出显示为黄色。
我尝试在excel中使用宏记录器,以查看它是否可以回答我的问题。这导致我得到这个。
ActiveSheet.PivotTables("PivotTable1").PivotSelect _
"'Sum of Unit Cost' 'Row Grand Total'", xlDataAndLabel, True
但是,它选择的范围超出了屏幕截图中所需要的范围。
我可以做一些事情,例如将选定的内容偏移2行,然后调整其大小以适合预期的范围,但是我想知道是否有更直接的方法来做到这一点。
答案 0 :(得分:1)
您可以使用此代码选择GrandTotals。如果您也需要它,它适用于行和列。最后一部分是删除最后一行(或列)。
Sub SelectGrandTotal()
Dim pt As PivotTable
Dim rColumnTotal As Range, rRowTotal As Range
Dim numrows As Long, numcolumns As Integer
Set pt = ActiveSheet.PivotTables(1)
With pt
'The conditions below are checking if the GrandTotals are activated. Not really necessary in some cases.
'Uncomment this block to work with Columns
'If .ColumnGrand Then
' With .DataBodyRange
' Set rColumnTotal = .Rows(.Rows.Count)
' rColumnTotal.Select
' End With
'End If
If .RowGrand Then
With .DataBodyRange
Set rRowTotal = .Columns(.Columns.Count)
rRowTotal.Select
End With
End If
End With
'Resizes selection and removes last Row (you can do the same for columns if necessary)
numrows = Selection.Rows.Count
numcolumns = Selection.Columns.Count
Selection.Resize(numrows - 1, numcolumns).Select
End Sub
答案 1 :(得分:0)
尝试将xlDataAndLabel
更改为xlDataOnly
;请参阅docs.microsoft上的XlPTSelectionMode枚举,或在对象浏览器( F2 )中找到所有可用成员的列表。