2016-03-29 35 views
0

我有一个包含多个数据透视表的工作表。所有数据透视表的格式都是相同的。活动数据透视表名称

如何使用VBA将多个字段移动到工作表中的活动数据透视表的值?

我试图录制一个宏来将字段移动到值,但最终不得不在我想将该宏用于另一个数据透视表时手动更改VBA代码中的数据透视表名称。我想避免必须手动更改数据透视表名称。

您可以在屏幕截图中看到,我手动将字段列表中的“值”拖动到每个数据透视表的“VALUES”区域。

这是一个重复的任务,我想使用VBA自动化,但每个数据透视表都有唯一的名称。

Excel Screen Capture

+0

请解释一下“移动字段值”,它并没有真正意义...... – vacip

+0

你定义为“活动”的数据透视表是什么? –

+0

本质上,我想要将每个数据透视表的相同字段移动到使用VBA的值区域。 “活动”表示数据透视表中的活动单元格。换句话说,我点击了数据透视表中的单元格,因为在单个工作表上有多个数据透视表,所以我想使用这个宏。 – roncruiser

回答

0

对于如何解决数据透视表的各个部分很好的概述见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 
+0

谢谢Tim ......这足以让我开始真正的! – roncruiser