ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1452|回复: 0

[已解决] excel2016更改数据透视表索引

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-9-13 01:16 | 显示全部楼层 |阅读模式
本帖最后由 sz216 于 2018-9-15 15:18 编辑

请教大牛:自己用excel2016录制的数据敌视表宏,第次使用都行更改工作表名,要求1:能不能更改一下数据透视表的索引。要求2:数据源删除或添加的时候自动涮新。
Sub 透视表13()
'
' 透视表13 宏
'

'
    Sheets.Add
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Sheet1!R1C1:R90C17", Version:=6).CreatePivotTable TableDestination:= _
        "Sheet2!R3C1", TableName:="数据透视表3", DefaultVersion:=6
    Sheets("Sheet2").Select
    Cells(3, 1).Select
    With ActiveSheet.PivotTables("数据透视表3").PivotFields("商品产地")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("数据透视表3").PivotFields("客户名称")
        .Orientation = xlRowField
        .Position = 2
    End With
    With ActiveSheet.PivotTables("数据透视表3").PivotFields("商品名称")
        .Orientation = xlRowField
        .Position = 3
    End With
    With ActiveSheet.PivotTables("数据透视表3").PivotFields("数量")
        .Orientation = xlRowField
        .Position = 4
    End With
    With ActiveSheet.PivotTables("数据透视表3").PivotFields("单位")
        .Orientation = xlRowField
        .Position = 5
    End With
    ActiveSheet.PivotTables("数据透视表3").ShowDrillIndicators = False
    With ActiveSheet.PivotTables("数据透视表3")
        .ColumnGrand = False
        .RowGrand = False
        .InGridDropZones = True
        .RowAxisLayout xlTabularRow
    End With
    ActiveSheet.PivotTables("数据透视表3").PivotFields("单据类型").Subtotals = Array(False, _
        False, False, False, False, False, False, False, False, False, False, False)
    ActiveSheet.PivotTables("数据透视表3").PivotFields("单号").Subtotals = Array(False, _
        False, False, False, False, False, False, False, False, False, False, False)
    ActiveSheet.PivotTables("数据透视表3").PivotFields("单据状态").Subtotals = Array(False, _
        False, False, False, False, False, False, False, False, False, False, False)
    ActiveSheet.PivotTables("数据透视表3").PivotFields("单据日期").Subtotals = Array(False, _
        False, False, False, False, False, False, False, False, False, False, False)
    ActiveSheet.PivotTables("数据透视表3").PivotFields("成本单价").Subtotals = Array(False, _
        False, False, False, False, False, False, False, False, False, False, False)
    ActiveSheet.PivotTables("数据透视表3").PivotFields("部门名称").Subtotals = Array(False, _
        False, False, False, False, False, False, False, False, False, False, False)
    ActiveSheet.PivotTables("数据透视表3").PivotFields("商品产地").Subtotals = Array(False, _
        False, False, False, False, False, False, False, False, False, False, False)
    ActiveSheet.PivotTables("数据透视表3").PivotFields("客户名称").Subtotals = Array(False, _
        False, False, False, False, False, False, False, False, False, False, False)
    ActiveSheet.PivotTables("数据透视表3").PivotFields("商品名称").Subtotals = Array(False, _
        False, False, False, False, False, False, False, False, False, False, False)
    ActiveSheet.PivotTables("数据透视表3").PivotFields("数量").Subtotals = Array(False, _
        False, False, False, False, False, False, False, False, False, False, False)
    ActiveSheet.PivotTables("数据透视表3").PivotFields("单位").Subtotals = Array(False, _
        False, False, False, False, False, False, False, False, False, False, False)
    ActiveSheet.PivotTables("数据透视表3").PivotFields("序号").Subtotals = Array(False, _
        False, False, False, False, False, False, False, False, False, False, False)
    ActiveSheet.PivotTables("数据透视表3").PivotFields("商品编号").Subtotals = Array(False, _
        False, False, False, False, False, False, False, False, False, False, False)
    ActiveSheet.PivotTables("数据透视表3").PivotFields("单价").Subtotals = Array(False, _
        False, False, False, False, False, False, False, False, False, False, False)
    ActiveSheet.PivotTables("数据透视表3").PivotFields("金额").Subtotals = Array(False, _
        False, False, False, False, False, False, False, False, False, False, False)
    ActiveSheet.PivotTables("数据透视表3").PivotFields("毛利").Subtotals = Array(False, _
        False, False, False, False, False, False, False, False, False, False, False)
    ActiveSheet.PivotTables("数据透视表3").PivotFields("交货地点").Subtotals = Array(False, _
        False, False, False, False, False, False, False, False, False, False, False)
    ActiveWindow.SmallScroll Down:=-9
    With ActiveSheet.PivotTables("数据透视表3").PivotFields("商品产地")
        .PivotItems("").Visible = False
    End With
    ActiveWindow.SmallScroll Down:=-30
    Columns("B:B").ColumnWidth = 13.5
    Columns("B:B").ColumnWidth = 17.13
    Columns("A:A").ColumnWidth = 12
    Sheets("Sheet1").Select
    ActiveWindow.SmallScroll Down:=66
    Sheets("Sheet2").Select
    ActiveWindow.SmallScroll Down:=-15
    Rows("1:2").Select
    Selection.Delete Shift:=xlUp
    Range("B16").Select
    ActiveWindow.SmallScroll Down:=-30
    ActiveSheet.PivotTables("数据透视表3").PivotFields("商品产地").Orientation = xlHidden
    With ActiveSheet.PivotTables("数据透视表3").PivotFields("商品产地")
        .Orientation = xlRowField
        .Position = 5
    End With
    ActiveSheet.PivotTables("数据透视表3").PivotFields("客户名称").Orientation = xlHidden
    With ActiveSheet.PivotTables("数据透视表3").PivotFields("客户名称")
        .Orientation = xlRowField
        .Position = 5
    End With
    ActiveWorkbook.SlicerCaches.Add2(ActiveSheet.PivotTables("数据透视表3"), "客户名称"). _
        Slicers.Add ActiveSheet, , "客户名称", "客户名称", 190.5, 536.25, 144, 176.25
    ActiveSheet.Shapes.Range(Array("客户名称")).Select
    ActiveSheet.Shapes("客户名称").IncrementLeft -34.5
    ActiveSheet.Shapes("客户名称").IncrementTop -126
    ActiveSheet.Shapes("客户名称").ScaleHeight 2.7872340426, msoFalse, _
        msoScaleFromTopLeft
    Range("B9").Select
    With ActiveSheet.PivotTables("数据透视表3").PivotFields("商品产地")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("数据透视表3").PivotFields("客户名称")
        .Orientation = xlRowField
        .Position = 3
    End With
    With ActiveSheet.PivotTables("数据透视表3").PivotFields("商品名称")
        .Orientation = xlRowField
        .Position = 3
    End With
    Columns("D:D").ColumnWidth = 7.5
End Sub


透视表13.zip

26.25 KB, 下载次数: 2

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-14 20:14 , Processed in 0.017770 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表