首页 > 其他分享 >数据透视表你只会手动创建吗?其实可以使用VBA一键生成噢

数据透视表你只会手动创建吗?其实可以使用VBA一键生成噢

时间:2022-11-02 11:00:44浏览次数:101  
标签:VBA 创建 代码 录制 一键 透视 数据 我们

数据透视表你只会手动创建吗?其实可以使用VBA一键生成噢_字段

Excel的数据透视表是一个非常强大的功能,说起数据透视表初次出现的时候,那是在我们Excel5的版本中间,在后续的版本依次更新迭代,直至目前仍然在改进中。


当然我们今天不说基础的数据透视表的建立,而是和你说用VBA代码来新建一个数据透视表。也许你会说我可以用数据库或者列表去完成数据透视表的创建工作,不仅速度快,而且不需要公式,但是我们想和你说的是如何用vba去完成创建工作,一起来看看吧!

数据透视表你只会手动创建吗?其实可以使用VBA一键生成噢_数据_02

我们有如下的源数据区域,是一份销售额的数据简单汇总合计表格。那么我们如何使用代码来创建呢?或者在这个时候你和我对如何使用VBA来创建一无所知,那么我们可以使用录制宏完成这个。在手动创建的时候,就打开宏录制器。

数据透视表你只会手动创建吗?其实可以使用VBA一键生成噢_字段_03

如下为我们手动创建的数据透视表,这个数据透视表完成了销售人员和月份的金额汇总,这个时候请注意一下数据透视表的几个关键字段:

Name:透视表的行标签

Region:透视表的报表帅选字段

Month:透视表的列帅选字段

Sales:透视表的金额汇总字段

数据透视表你只会手动创建吗?其实可以使用VBA一键生成噢_数据库_04

这个时候当我们完成数据透视表的创建,即可点击停止录制宏,我们可以看到如下的录制宏代码:

数据透视表你只会手动创建吗?其实可以使用VBA一键生成噢_数据_05

你看着这个代码会发现也很简单的,但是如果你在重新执行的时候,会提示你一个错误,这个为什么呢?我们创建数据透视表不是重复性动作吗?怎么在这个位置就不行呢?

数据透视表你只会手动创建吗?其实可以使用VBA一键生成噢_字段_06

经过仔细分析发现,我们报错的语句位置出现了一个sheet2工作表,就是因为这个引起的,就是说我们的sheet2已经存在了,所以当我们在次新建数据透视表的时候,就会出现报错提示。另外这个录制的宏还存一个数据透视表的名称,也就是说我们再次新建的数据透视表会出现报错提示,不能新建PivotTable1数据透视表。


或许你在这个时候会说,那么创建的数据透视表还有什么用啊,都不能执行。其实并不是完全没有用处,至少我们可以学习如何创建数据透视表代码。

以下这个几个代码存在的关键字段,我们悉数稍微说一下:

PivotTables:这个相当于我们工作表中的所有PivotTable的集合的一个汇总。比如工作表的sheet1,是worksheets的集合。

PivotCaches:工作薄中的所有的PivotCache集合对象

PivotFields:PivotTable字段的集合对象

CreatePivotTable:创建数据透视表的方法

说了这么多,那我们应该如何用代码来完成数据透视表的创建呢,一起来看看吧!

代码如下:

数据透视表你只会手动创建吗?其实可以使用VBA一键生成噢_字段_07

其实这个代码就是修改了上面的录制宏所完成的代码,他们效果是一样样的。

需要注意的一点是,当我们把源数据区域先写入数据透视表的数据缓存以后,然后在新增表的话,我们这个时候在创建数据透视表的时候,就不需要指定工作表了。另外说明一点,我们创建了一个对象变量PT (PivotTable),每次就可以创建很多的数据透视表,就不会出现报错提示。小伙伴一起试试吧,你会发现用代码创建数据透视表是如此的简单。

上就是我们今天和大家说用代码创建数据透视表的简单方法,如果有不明白的或者不懂的可以在下方留言,我们会一一解答的。

我是Excel教案,关注我持续分享更多的Excel技巧!

标签:VBA,创建,代码,录制,一键,透视,数据,我们
From: https://blog.51cto.com/u_15705258/5816066

相关文章