前景提要(文末提供源码下载)
之前我们分享过一个方法,就是多个工作表汇总按照类别进行求和的,当时我们选择的类是姓名,并且是纵向的,不过有小伙伴在自己对着代码尝试练习的过程中,发现了另外一个场景,如果类名刚好出现在行上面,我们之前的方法就不行了,没错,因为之前的方法是按照纵向来操作的,如果碰到横向的话,我们就需要稍微调整下代码了
不过可能因为小伙伴们平时比较少用到数组和字典这两个概念,空间概念还没有形成,虽然有方法,但是一直都没有尝试成功,那么今天我就在这里分享下横向的具体操作方法吧。
场景简介
既然类别是在行上面,我们这里就稍微更改下数据
![2c0bfcfd1a75d2f911c90515f123f56f.png](https://i-blog.csdnimg.cn/blog_migrate/1ff3e69a05871275a2d5852f2f80bfd3.jpeg)
我们现在要实现和之前一样的效果,按照姓名列来进行求和汇总,得到所有人的分数的总和,方法和思路还是一样,依然是通过字典判断姓名是否存在,数组进行计算
还没有这个概念的小伙伴们,可以利用本节和之前的Excel VBA 7.36跨工作表按类求和,你还在敲计算器or函数公式?对比着学习
代码区
Sub TEST()Dim zd As Object, rng As Range, arr()Set zd = CreateObject("scripting.dictionary")Set rng = Application.InputBox("请选择类名所在的行