分享

一劳永逸!Excel自动统计,真好(改善版)

 Excel不加班 2022-02-28


其实,大多数的人都是学习太少,想得太多。学习的事,只需傻傻的坚持着就行,假以时日,终将有所回报。

卢子自己使用的表格都是一劳永逸,前期用心设置,后期就自动统计,完全不用操心。而有的人,总是随意设置,这样每次都会重复做一些无用功。

先看前期效果,只要在明细表添加数据,在汇总表就能自动统计。详见文章:一劳永逸!Excel自动统计,真好

有粉丝提出了新的需要,透视表要跟明细表在同一个工作表,这种如何实现自动统计?

同样是输入一行数据,右边的透视表就实时更新。

Step 01 插入透视表,选择一个比较大的区域,这样相当于间接获得动态数据源,将透视表存放到现有工作表。

当然,这里也可以定义名称,写一个长公式获取动态区域,不过不是今天的重点就先不说。

Step 02 将性别拉到行,姓名拉到值,并取消空白的筛选。

Step 03 点开发工具,录制宏,右键,刷新,停止录制宏。这步是为了获取透视表刷新的VBA代码。

不会英语也能学会VBA,很大原因就在于此,很多代码都可以通过录制宏得到。

Step 04 点VB,进入VBA后台,在模板1这里可以看到刚刚录制的宏代码,将这一段复制起来。

宏2是宏的名称,代表我之前录制过宏,现在是第2个宏。数据透视表3也是同样的意思,代表透视表名称。

双击Sheet1,选择WorkSheet和Change,这个是工作表事件,意思就是说,只要我内容有改变了就执行刷新的代码,再将多余的代码删除掉。

Private Sub Worksheet_Change(ByVal Target As Range)

ActiveSheet.PivotTables("数据透视表3").PivotCache.Refresh

End Sub

这样就可以,当然也可以添加一段对应的固定语句,提升VBA的运行效率。

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False

ActiveSheet.PivotTables("数据透视表3").PivotCache.Refresh

Application.EnableEvents = True

End Sub

Step 05 另存为启用宏工作簿,现在就可以自动统计了。

学VBA的意义是为了让数据自动化,还有解决常规用法解决不了的问题。最后,别把VBA想得太高深,实际上跟我们的工作是密切相关的。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多