宏代码在同一张纸上创建多变的枢轴

时间:2019-03-06 13:06:37

标签: excel

我创建了一个宏代码,其中只创建了一个数据透视表,有人可以帮助我在单个工作表中创建多用途数据透视表。

我正在使用以下代码,这里的过滤器仅针对印度选择,在下一个H列中,我希望使用相同的数据透视表,在其中选择EMEA

然后在下一个Q列中,过滤器选择其他

代码:

Sub pivottable()
Dim PSheet As Worksheet
Dim DSheet As Worksheet
Dim PCache1 As PivotCache
Dim PTable As pivottable
Dim PRange As Range
Dim LastRow As Long
Dim LastCol As Long
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("PivotTable").Delete
Sheets.Add Before:=ActiveSheet
ActiveSheet.Name = "PivotTable"
Application.DisplayAlerts = True
Set PSheet = Worksheets("PivotTable")
Set PSheet = Worksheets("PivotTable2")
Set DSheet = Worksheets("Raw Data")

LastRow = DSheet.Cells(Rows.Count, 1).End(xlUp).Row
LastCol = DSheet.Cells(1, Columns.Count).End(xlToLeft).Column
Set PRange = DSheet.Cells(1, 1).Resize(LastRow, LastCol)

Set PCache = ActiveWorkbook.PivotCaches.Create _
(SourceType:=xlDatabase, SourceData:=PRange). _
CreatePivotTable(TableDestination:=PSheet.Cells(2, 2), _
TableName:="PivotTable")

Set PTable = PCache.CreatePivotTable _
(TableDestination:=PSheet.Cells(1, 1), TableName:="PivotTable")

Sheets("PivotTable").Select

With ActiveSheet.PivotTables("PivotTable").PivotFields("Region")
        .Orientation = xlPageField
        .Position = 1
    End With
ActiveSheet.PivotTables("PivotTable").PivotFields("Region").CurrentPage = _
        "INDIA"


With ActiveSheet.PivotTables("PivotTable").PivotFields("Assignment Group")
 .Orientation = xlRowField
 .Position = 1


 End With



 With ActiveSheet.PivotTables("PivotTable").PivotFields("Aging")
 .Orientation = xlColumnField
  .Position = 1
  End With

  ActiveSheet.PivotTables("PivotTable").AddDataField ActiveSheet.PivotTables( _
  "PivotTable").PivotFields("Number"), "Count of Number", xlCount
  ActiveSheet.PivotTables("PivotTable").PivotFields("Assignment group"). _
        AutoSort xlDescending, "Count of Number"




End Sub

0 个答案:

没有答案