20170517xlVBA添加数据透视表

Sub AddPovitTable()
    'Constance
    Const DATA_SHEET As String = "Advanced Filter"
    Const DATA_ADDRESS As String = "R7C1:R107C11"
    Const PIVOT_SHEET As String = "PivotSheet"    ' Sheet Name  with No space
    Const PIVOT_ADDRESS As String = "R3C1"
    Const PIVOT_TABLE As String = "Pivot Table"

   'Object
    Dim Wb As Workbook
    Dim Sht As Worksheet
    Dim pvtTable As PivotTable
    
    
    Set Wb = ThisWorkbook
    
    'Do not display Alert when delete a sheet
    Application.DisplayAlerts = False
    For Each Sht In Wb.Worksheets
        If Sht.Name = PIVOT_SHEET Then Sht.Delete
    Next Sht
    Application.DisplayAlerts = True

    'Add a new sheet for pivot table
    Set Sht = Wb.Worksheets.Add(After:=Wb.Worksheets(Wb.Worksheets.Count))
    Sht.Name = PIVOT_SHEET

    'Create a new pivot table
    Set pvtTable = Wb.PivotCaches.Create( _
                                         SourceType:=xlDatabase, _
                                         SourceData:=DATA_SHEET & "!" & DATA_ADDRESS, _
                                         Version:=xlPivotTableVersion15). _
                   CreatePivotTable( _
                                    TableDestination:=PIVOT_SHEET & "!" & PIVOT_ADDRESS, _
                                    TableName:=PIVOT_TABLE, _
                                    DefaultVersion:=xlPivotTableVersion15)
   'set Fields
    With pvtTable
        .PivotFields("State").Orientation = xlRowField
        .PivotFields("State").Position = 1

        .PivotFields("City").Orientation = xlRowField
        .PivotFields("City").Position = 2

        .PivotFields("Salesperson").Orientation = xlRowField
        .PivotFields("Salesperson").Position = 3

        .PivotFields("Payment").Orientation = xlRowField
        .PivotFields("Payment").Position = 4

        .PivotFields("Transport").Orientation = xlRowField
        .PivotFields("Transport").Position = 5

        .PivotFields("Month").Orientation = xlRowField
        .PivotFields("Month").Position = 6

        .AddDataField .PivotFields("Product A"), "Sum:Product A", xlSum
        .AddDataField .PivotFields("Product B"), "Sum:Product B", xlSum
        .AddDataField .PivotFields("Product C"), "Sum:Product C", xlSum

    End With
      
    'Release Objects
    Set Wb = Nothing
    Set Sht = Nothing
    Set pvtTable = Nothing


End Sub

  

转载于:https://www.cnblogs.com/nextseven/p/7129153.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值