Excel精英培训网

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

[已解决]EXCEL宏生成数据透视表 新表命名的问题

[复制链接]
发表于 2016-3-17 20:48 | 显示全部楼层 |阅读模式
用宏生成数据透视表, 每次成功生成新表后,下次必须手动改正表格名称才可以自动运行。
如何不用改表格的名称,请教就可以自动生成新表?代码和附件如下(粉红字体部分):
'
' 宏6 宏
'

'
    Sheets.Add
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Bank&Cash of Feb!R1C1:R258C12", Version:=xlPivotTableVersion10). _
        CreatePivotTable TableDestination:="Sheet3!R3C1", TableName:="数据透视表6", _
        DefaultVersion:=xlPivotTableVersion10
    Sheets("Sheet3").Select
    Cells(3, 1).Select
    ActiveWorkbook.ShowPivotTableFieldList = True
    With ActiveSheet.PivotTables("数据透视表6").PivotFields("类型")
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("数据透视表6").AddDataField ActiveSheet.PivotTables("数据透视表6" _
        ).PivotFields("借方"), "求和项:借方", xlSum
    ActiveWorkbook.ShowPivotTableFieldList = False
    ActiveCell.Cells.Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    ActiveWorkbook.Save
    Sheets("Sheet34").Select
    Sheets("Sheet34").Move After:=Sheets(3)
End Sub


最佳答案
2016-3-18 11:33
'创建方式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(1).[A1].CurrentRegion, 2)
    '创建一个基于 数据透视表的缓存(PivotCache 对象)的数据透视表。透视表左上角在A1
    Set pt = pc.CreatePivotTable([A1])
    With pt
        '透视字段"类型"的位置在 行标签
        .PivotFields("类型").Orientation = xlRowField
        '透视字段"借方"的位置在 数据标签
        .PivotFields("借方").Orientation = xlDataField
    End With
End Sub
资金预算2.rar (17.49 KB, 下载次数: 11)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2016-3-18 09:52 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2016-3-18 09:54 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2016-3-18 09:55 | 显示全部楼层
附上附件

资金预算.rar

31.75 KB, 下载次数: 4

EXCEL附宏文件

回复

使用道具 举报

发表于 2016-3-18 11:33 | 显示全部楼层    本楼为最佳答案   
'创建方式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(1).[A1].CurrentRegion, 2)
    '创建一个基于 数据透视表的缓存(PivotCache 对象)的数据透视表。透视表左上角在A1
    Set pt = pc.CreatePivotTable([A1])
    With pt
        '透视字段"类型"的位置在 行标签
        .PivotFields("类型").Orientation = xlRowField
        '透视字段"借方"的位置在 数据标签
        .PivotFields("借方").Orientation = xlDataField
    End With
End Sub
资金预算2.rar (17.49 KB, 下载次数: 11)
回复

使用道具 举报

 楼主| 发表于 2016-3-18 13:24 | 显示全部楼层
追问版主:请问您是直接写的VBA语言,还是可以在EXCEL里用宏建制。
因本人对VBA语言不通,希望可以用简单的宏录制实现,谢谢。
查看过两者之前的代码,相关十万八千里。
回复

使用道具 举报

发表于 2016-3-18 14:53 | 显示全部楼层
jjh1314 发表于 2016-3-18 13:24
追问版主:请问您是直接写的VBA语言,还是可以在EXCEL里用宏建制。
因本人对VBA语言不通,希望可以用简单的 ...

不明白你问的内容?
回复

使用道具 举报

 楼主| 发表于 2016-3-21 08:54 | 显示全部楼层
爱疯 发表于 2016-3-18 14:53
不明白你问的内容?

请问你是如何做到的?为什么我在用宏录制后再运行就不行了。
回复

使用道具 举报

发表于 2016-3-21 09:21 | 显示全部楼层
jjh1314 发表于 2016-3-21 08:54
请问你是如何做到的?为什么我在用宏录制后再运行就不行了。

录制宏后,看帮助,学习的。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 20:17 , Processed in 0.462668 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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