Excel VBA之函数篇-3.18跨越sheet统计数据 VBA强大的超乎想象

前景提要

昨天我们分享了那个案例之后,相信很多的童鞋都会觉得那个函数有点多此一举,虽然可以形成透视表,但是面对数据不大的情况下,通过简单的复制粘贴在直接用透视表就可以了,并不需要写代码,这说法大家还没有认识到VBA的强大,就算是数据不大,可以通过复制粘贴到一列来操作

好吧,那我更换一个场景,所以数据都分别统计在不同的sheet里面,这样你如何去汇总数据呢?

不要说这样的情况没有,小编日常接触的一些报表都会有这样的习惯,为了展示数据的清晰,都会将不同的地方的数据统计到不同的sheet,这样看起来更加的方便,针对每个sheet的分析也更加的到位,然后,,还是苦了最后的统计的人啊,一个sheet一个数据,你让他怎么去复制粘贴呢?还没复制到一半怕就忘记自己复制到那个表了。这个时候你就需要使用到强大的VBA了。

场景说明

还是上一次的场景,上一次的配方,不过我这里稍微改动下,将原来在一个sheet的数据,全部复制到其他的sheet去。这样就实现了我们的场景模拟,不同的分店的销售数据在不同的sheet下,如果采用复制粘贴的话,需要不停的移动鼠标来切换sheet,如果数量大的话,或者工作的过程中有其他的事情打断了你的复制或者有人和你商量其他的事情,那么你回过头来可能就忘记你复制到哪里了,得,加班妥妥的

好了,胃口也掉的差不多了吧,我们上代码吧

Sub test() Worksheets("统计").Range("A1").Consolidate Array("A分店!R1C1:R9C2", "B分店!R1C1:R9C2", "C分店!R1C1:R9C2", "D分店!R1C1:R9C2"), xlSum, True, True, False Worksheets("统计").Range("A1") = "分店产品" End Sub

看看效果,成果是检验真理的最好证据

成功的在我们制定的统计的sheet表中实现了我们的要求

函数说明

Consolidate( )还是我们今天的主角,今天我们展示了他更加强大的一面,跨越sheet的局限,成功的将多个sheet的数据统计在了一起,这样不仅仅是方便了最后一个环节的核对和汇总,同时也方便了其他各环节针对各个分店的分析和对比,非常完美!

代码解析

今天的代码非常的简短,我们主要说下Consolidate( )这个函数的使用方法,

Consolidate Array("A分店!R1C1:R9C2", "B分店!R1C1:R9C2", "C分店!R1C1:R9C2", "D分店!R1C1:R9C2")

乍一看来,和上节我们分享的代码好像是差不多的,都是相同的形势,并没有什么不同,为什么会产生如何不同的效果呢?

其实代码上还是有区别的,这个区别也是实现今天这个功能的功臣,随便抽取一部分来进行分析

"A分店!R1C1:R9C2"

上一节是什么样的呢,我们去看看

"R1C1:R9C2

"这样的,对比下,有没有发现不同,原来今天的区域引用这里,前面多了一个sheet名字+!这样的组合,这样的组合就是代表着某个sheet的意思,后面更加相应的区域,就可以直接调用这个区域的所有的数据了,因为我们要统计所有的sheet的区域,所以这里我们只需要在上节代码的基础上,前面都加上不同的sheet的名称就可以了

看看,小小的改动,就可以实现完全不同,并且功能更加强大的效果,这也是小编为什么这段时间一直都在在分享关于函数的运用等一些非常基础的知识,要知道基础还是非常的重要的,没有这些基础,后面的很多操作都没有办法实现的,而这些看似简单的基础,其实灵活使用的话,也是可以实现很多意想不到的效果和功能的。

(0)

相关推荐