Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: 张雄友

[已解决]数组转换格式

[复制链接]
 楼主| 发表于 2015-5-27 22:12 | 显示全部楼层
本帖最后由 张雄友 于 2015-5-27 22:15 编辑
爱疯 发表于 2015-5-27 21:51
Sub test3()
    On Error Resume Next
    Application.AddCustomList [e19:e24]


数据透视出来后,我想将:
1黄色单元这行不要,直接在A1单元格开始显示,
2透视表要变成数值
3网格线不要

见《效果》工作表。
可以做到吗?谢谢。

数组转换格式爱4.rar

13.03 KB, 下载次数: 0

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2015-5-27 22:15 | 显示全部楼层
可以,正在打lol,打完再改。。。。。。。。。
回复

使用道具 举报

 楼主| 发表于 2015-5-27 22:16 | 显示全部楼层
爱疯 发表于 2015-5-27 22:15
可以,正在打lol,打完再改。。。。。。。。。

是打游戏吗?
回复

使用道具 举报

 楼主| 发表于 2015-5-27 22:24 | 显示全部楼层
爱疯 发表于 2015-5-27 21:51
Sub test3()
    On Error Resume Next
    Application.AddCustomList [e19:e24]

回复:
我发现一个奇怪的规律:
如果先把透视表列字段加入自定义序列,那么接下来创建的数据透视表,列字段顺序将按该顺序排序。
也就是说,当自定义序列集合里已经有了由所有列字段定义的自定义序列,那么透视表会优先按自定义序列排序。
试了多遍,好像是真的如此。(几年前就发现这个问题了


data工作表的e19:e24,表示自定义列表的存放区域。
如果你的excel中已手动添加了该自定义列表,那么绿色部分的代码可删掉。(明白,绿色代码第一次见,好强


回复

使用道具 举报

发表于 2015-5-27 22:58 | 显示全部楼层
数组转换格式爱5.rar (14.8 KB, 下载次数: 5)
回复

使用道具 举报

 楼主| 发表于 2015-5-27 23:10 | 显示全部楼层
爱疯 发表于 2015-5-27 22:58
是的,打完了

网格线没有去掉。
回复

使用道具 举报

发表于 2015-5-27 23:13 | 显示全部楼层
在过程里,最后加一句:

ActiveWindow.DisplayGridlines = False
回复

使用道具 举报

 楼主| 发表于 2015-5-27 23:17 | 显示全部楼层
爱疯 发表于 2015-5-27 23:13
在过程里,最后加一句:

ActiveWindow.DisplayGridlines = False

Application.AddCustomList [e19:e24]

如果[e19:e24]  中的自定义列表不断更改,怎么先删除自定义列表中之前增加的序列????

回复

使用道具 举报

 楼主| 发表于 2015-5-27 23:20 | 显示全部楼层
爱疯 发表于 2015-5-27 23:13
在过程里,最后加一句:

ActiveWindow.DisplayGridlines = False

就是将之前不断变更的序列先删除,再执行:Application.AddCustomList [e19:e24],怎么做?
360截图20150527231556734.jpg
回复

使用道具 举报

 楼主| 发表于 2015-5-27 23:36 | 显示全部楼层
自己研制成功。

Option Explicit
'创建方式2: 用数据透视表向导来创建
Sub test3()
    Dim i&
    Dim A
    On Error Resume Next
    For i = 12 To 1000 '定义足够大了。EXCEL 内置最小是从12开始,本身有11个。
    Application.DeleteCustomList ListNum:=i
    Next i
    Application.AddCustomList [e19:e24]
    On Error GoTo 0

    Sheets.Add after:=Sheets(Sheets.Count)
    With ActiveSheet.PivotTableWizard(xlDatabase, Sheets(1).[a1].CurrentRegion)
        .PivotFields("货号").Orientation = xlRowField
        .PivotFields("尺寸").Orientation = xlColumnField
        .PivotFields("数量").Orientation = xlDataField
    End With
    A = Range("a1").CurrentRegion.Offset(1, 0)
    Cells.Clear
    Range("a1").Resize(UBound(A), UBound(A, 2)).Value = A
    Range("a1").CurrentRegion.Borders.LineStyle = 1
End Sub

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 07:43 , Processed in 0.171848 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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