Excel精英培训网

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

[已解决]数组转换格式

[复制链接]
发表于 2015-5-27 23:44 | 显示全部楼层
'创建方式2: 用数据透视表向导来创建
Sub test3()
    On Error Resume Next
    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

    Dim A
    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
    ActiveWindow.DisplayGridlines = False
    Application.DeleteCustomList Application.CustomListCount    '删除最后一条(也就是本过程添加的)自定义序列
End Sub

数组转换格式爱6.rar (15.03 KB, 下载次数: 4)

评分

参与人数 1 +9 收起 理由
张雄友 + 9 很给力!

查看全部评分

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

使用道具 举报

 楼主| 发表于 2015-5-28 00:18 | 显示全部楼层
爱疯 发表于 2015-5-27 23:44
'创建方式2: 用数据透视表向导来创建
Sub test3()
    On Error Resume Next

明天再丨!好累啊……!谢谢!
回复

使用道具 举报

 楼主| 发表于 2015-5-28 06:20 | 显示全部楼层
爱疯 发表于 2015-5-27 23:44
'创建方式2: 用数据透视表向导来创建
Sub test3()
    On Error Resume Next

早上好:
Application.AddCustomList [e19:e24]

直接将排序条件写入代码中是否可行????????????

   arr = Array("M", "L", "XL", "2XL", "3XL", "4XL")
   Application.AddCustomList arr

有没有后遗证?
回复

使用道具 举报

发表于 2015-5-28 09:11 | 显示全部楼层    本楼为最佳答案   
Sub test7()
    On Error Resume Next
    Application.AddCustomList Array("M", "L", "XL", "2XL", "3XL", "4XL")    '用了数组,就可以不用辅助区
    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

    Dim A
    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
    ActiveWindow.DisplayGridlines = False
    Application.DeleteCustomList Application.CustomListCount    '删除最后一条(也就是本过程添加的)自定义序列
End Sub



说明:
绿色部分执行后,excel中新增加一条自定义序列。
执行其它操作,...
蓝色部分执行后,由绿色部分增加的自定义序列便删除了。也就是说,没有'后遗症'。


回复

使用道具 举报

 楼主| 发表于 2015-5-28 13:18 | 显示全部楼层
爱疯 发表于 2015-5-28 09:11
Sub test7()
    On Error Resume Next
    Application.AddCustomList Array("M", "L", "XL", "2XL", "3 ...

执行时除了源工作表外其它的工作表先删除怎么增加代码?因为每执行一次工作表越来越多……

回复

使用道具 举报

发表于 2015-5-28 15:30 | 显示全部楼层
数组转换格式爱8.rar (14.75 KB, 下载次数: 7)

评分

参与人数 1 +9 收起 理由
张雄友 + 9 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2015-5-28 18:25 | 显示全部楼层
爱疯 发表于 2015-5-28 15:30
运行时,将先删除Sheets("Total"),再新建Sheets("Total")。
从而不会发生“每执行一次工作表越来越多 ...

我将它毁灭性删除再生产!

    For Each sh In ThisWorkbook.Worksheets
        If sh.Name <> "data" Then
            sh.Delete
        End If
    Next sh
回复

使用道具 举报

发表于 2015-5-28 19:07 | 显示全部楼层
张雄友 发表于 2015-5-28 18:25
我将它毁灭性删除再生产!

    For Each sh In ThisWorkbook.Worksheets

也可以。

点评

39楼什么问题?  发表于 2015-5-28 21:19
回复

使用道具 举报

 楼主| 发表于 2015-5-28 21:10 | 显示全部楼层
爱疯 发表于 2015-5-28 19:07
也可以。

怎么不行的? Sheets.Add after:=Sheets(Sheets.Count)

每执行一次就会多了一个空表出来。表名是:Sheet1,Sheet2,Sheet3,Sheet4,Sheet5,    。。。。。。请指点。

怎么不行的?.rar

20.83 KB, 下载次数: 5

回复

使用道具 举报

 楼主| 发表于 2015-5-29 06:12 | 显示全部楼层
爱疯 发表于 2015-5-28 19:07
也可以。

39楼怎么预防?
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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