Excel 如何在VBA中访问透视表的特定列总计?

Excel 如何在VBA中访问透视表的特定列总计?,excel,vba,Excel,Vba,这是一个非常琐碎的问题,但我正努力在网上找到答案 如何“访问”给定列的透视表grand total 例如,我有数据透视表“数据透视表1” 因此,在本例中,我想将$5000复制到另一个单元格中 透视表是动态的,将更改长度 我想说,对于给定的一栏价格总和,取总计并将其复制到另一个单元格。试试看: Sub foo() Dim lngRows As Long, lngColumns As Long, lngGT As Long With Sheet1.PivotTables(1).Da

这是一个非常琐碎的问题,但我正努力在网上找到答案

如何“访问”给定列的透视表
grand total

例如,我有数据透视表
“数据透视表1”

因此,在本例中,我想将
$5000
复制到另一个单元格中

透视表是动态的,将更改长度

我想说,对于给定的一栏价格总和,取
总计
并将其复制到另一个单元格。

试试看:

Sub foo()
    Dim lngRows As Long, lngColumns As Long, lngGT As Long

    With Sheet1.PivotTables(1).DataBodyRange
        lngRows = .Rows.Count
        lngColumns = .Columns.Count
        lngGT = .Cells(1).Offset(lngRows - 1, lngColumns - 1)
    End With

    Sheet1.Range("E11").Value = lngGT
End Sub
结果:


注意:

Sub tst()

With ActiveSheet.PivotTables("PivotTable1")

ActiveSheet.Range("A1").Value = .PivotFields("Sum of Sum").DataRange.End(xlDown).Value

End With

End Sub
  • 将值打印到
    A1
  • 相应地更改字段名
  • 将用于列
  • 更多信息请点击这里
试试看:

Sub tst()

With ActiveSheet.PivotTables("PivotTable1")

ActiveSheet.Range("A1").Value = .PivotFields("Sum of Sum").DataRange.End(xlDown).Value

End With

End Sub
演示:

Sub tst()

With ActiveSheet.PivotTables("PivotTable1")

ActiveSheet.Range("A1").Value = .PivotFields("Sum of Sum").DataRange.End(xlDown).Value

End With

End Sub

这确实有效,但它只提供了最后一列,如何选择其他列,以及如何将该值复制到另一个单元格中?不要用消息框打开它,谢谢!抱歉,刚刚注意到您的帖子-出现错误时哪一行突出显示?不管怎样,我看到Mikku已经给了你一个正确的答案,所以我很高兴这一切都为你解决了。