Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2250|回复: 3

[已解决]用宏录的透视表单价应为最大为什么成为求和

[复制链接]
发表于 2015-10-10 14:40 | 显示全部楼层 |阅读模式
本帖最后由 江河行地 于 2015-10-11 07:41 编辑

以单价区分。
最佳答案
2015-10-10 17:15
'创建方式1:先创建数据透视表缓存对象,再创建数据透视表
Sub test1()
    Dim pc As PivotCache
    Dim pt As PivotTable

    '创建空白工作表,存放数据透视表。
    Sheets.Add after:=Sheets(Sheets.Count)
    '创建 数据透视表的缓存(PivotCache 对象)
    Set pc = ThisWorkbook.PivotCaches.Create(xlDatabase, Sheets("Sheet1").[a1].CurrentRegion, 2)
    '创建一个基于 数据透视表的缓存(PivotCache 对象)的数据透视表。透视表左上角在A1
    Set pt = pc.CreatePivotTable([a1])
    With pt
        .PivotFields("单价").Orientation = xlRowField
        .PivotFields("数量").Orientation = xlDataField
        .PivotFields("单价").Orientation = xlDataField
        .PivotFields("金额").Orientation = xlDataField
        .DataPivotField.Orientation = xlColumnField

        .PivotFields("求和项:单价").Caption = "最大值项:单价"
        .PivotFields("最大值项:单价").Function = xlMax
    End With
End Sub


求助.zip

81.64 KB, 下载次数: 5

 楼主| 发表于 2015-10-10 16:58 | 显示全部楼层
这个效果是想用VBA完成的,主要是单价问题?VBA中不会实现?
58.gif
回复

使用道具 举报

发表于 2015-10-10 16:59 | 显示全部楼层
你是用“单价”作为“行标签”,但是“单价列”为数值格式,导致录制宏运行后不能正常显示;
解决办法:
重新增加单价列(如命名为“单价1”),用分列将新增单价列的数值格式变更为文本型数值格式,此时在此基础上在以宏录制透视表,新增的单价列作为行标签,此种方式录制出来的宏就可以使用了,见附件。

用宏录制透视表.rar

19.95 KB, 下载次数: 8

评分

参与人数 2 +11 收起 理由
CocoXie + 6 赞一个!
江河行地 + 5 很给力!

查看全部评分

回复

使用道具 举报

发表于 2015-10-10 17:15 | 显示全部楼层    本楼为最佳答案   
'创建方式1:先创建数据透视表缓存对象,再创建数据透视表
Sub test1()
    Dim pc As PivotCache
    Dim pt As PivotTable

    '创建空白工作表,存放数据透视表。
    Sheets.Add after:=Sheets(Sheets.Count)
    '创建 数据透视表的缓存(PivotCache 对象)
    Set pc = ThisWorkbook.PivotCaches.Create(xlDatabase, Sheets("Sheet1").[a1].CurrentRegion, 2)
    '创建一个基于 数据透视表的缓存(PivotCache 对象)的数据透视表。透视表左上角在A1
    Set pt = pc.CreatePivotTable([a1])
    With pt
        .PivotFields("单价").Orientation = xlRowField
        .PivotFields("数量").Orientation = xlDataField
        .PivotFields("单价").Orientation = xlDataField
        .PivotFields("金额").Orientation = xlDataField
        .DataPivotField.Orientation = xlColumnField

        .PivotFields("求和项:单价").Caption = "最大值项:单价"
        .PivotFields("最大值项:单价").Function = xlMax
    End With
End Sub


评分

参与人数 1 +6 收起 理由
CocoXie + 6 赞一个!

查看全部评分

回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-24 07:09 , Processed in 0.370545 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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