【发布时间】:2017-05-01 05:05:18
【问题描述】:
我有一个数据透视表和以下 VBA,它为第一行字段显示一个 msgbox,但我需要它遍历所有行字段,为每个字段显示一个消息框,有人能指出我正确的方向吗?好像不知道怎么做
Sub Piv()
Dim PvTable As PivotTable
Dim PvField As PivotField
Dim PvItem As PivotItem
Set PvTable = ActiveSheet.PivotTables("RawDataTable")
Set PvField = PvTable.RowFields(1)
With ws
For Each PvItem In PvField.PivotItems
MsgBox PvItem
Next
End With
End Sub
我也可以让它给我所有的字段标题,但不是数据
Sub Piv()
Dim PvTable As PivotTable
Dim PvField As PivotField
Dim PvItem As PivotItem
Set PvTable = ActiveSheet.PivotTables("RawDataTable")
With ws
For Each PvField In PvTable.PivotFields
MsgBox PvField
Next
End With
End Sub
【问题讨论】:
-
我可能遗漏了一些东西,但在第一个示例中,你不能将
For循环包装在另一个For循环中吗:For Each PvField In PvTable.RowFields -
这行得通,但它的循环方式错误,它给了我所有的第一列数据,然后是第二列,依此类推,但我想遍历整行然后移动到下一行跨度>
-
出于好奇,这些消息框的目的是什么?每次显示后,您需要用户做什么?并且你会给用户一种方法在中途退出程序吗?
标签: vba excel pivot-table