我有一个包含多个数据透视表的工作表。所有数据透视表的格式都是相同的。活动数据透视表名称
如何使用VBA将多个字段移动到工作表中的活动数据透视表的值?
我试图录制一个宏来将字段移动到值,但最终不得不在我想将该宏用于另一个数据透视表时手动更改VBA代码中的数据透视表名称。我想避免必须手动更改数据透视表名称。
您可以在屏幕截图中看到,我手动将字段列表中的“值”拖动到每个数据透视表的“VALUES”区域。
这是一个重复的任务,我想使用VBA自动化,但每个数据透视表都有唯一的名称。
我有一个包含多个数据透视表的工作表。所有数据透视表的格式都是相同的。活动数据透视表名称
如何使用VBA将多个字段移动到工作表中的活动数据透视表的值?
我试图录制一个宏来将字段移动到值,但最终不得不在我想将该宏用于另一个数据透视表时手动更改VBA代码中的数据透视表名称。我想避免必须手动更改数据透视表名称。
您可以在屏幕截图中看到,我手动将字段列表中的“值”拖动到每个数据透视表的“VALUES”区域。
这是一个重复的任务,我想使用VBA自动化,但每个数据透视表都有唯一的名称。
对于如何解决数据透视表的各个部分很好的概述见http://peltiertech.com/referencing-pivot-table-ranges-in-vba/。
这应该让你开始:
Sub Tester()
Dim pt As PivotTable
Set pt = ActivePivotTable
If pt Is Nothing Then
Debug.Print "No Active pivot table"
Else
Debug.Print "Active = " & pt.Name
'work on pt...
End If
End Sub
'get the pivot table which contains the current selection
Function ActivePivotTable() As PivotTable
Dim pt As PivotTable, rv
For Each pt In ActiveSheet.PivotTables
Debug.Print pt.Name, pt.TableRange2.Address
If Not Intersect(Selection, pt.TableRange2) Is Nothing Then
Set ActivePivotTable = pt
Exit Function
End If
Next pt
End Function
谢谢Tim ......这足以让我开始真正的! – roncruiser
请解释一下“移动字段值”,它并没有真正意义...... – vacip
你定义为“活动”的数据透视表是什么? –
本质上,我想要将每个数据透视表的相同字段移动到使用VBA的值区域。 “活动”表示数据透视表中的活动单元格。换句话说,我点击了数据透视表中的单元格,因为在单个工作表上有多个数据透视表,所以我想使用这个宏。 – roncruiser