用excel的VBA代码统计多列的数据

如题所述

一个简单的公式就解决了,

N2 :   =sumif(A:G,M2,B:H)

代码也可以给你写个: 随手写的没检查,有问题可以告诉我

Sub 统计()
Set dic = CreateObject("scripting.dictionary")
arr = [a1].CurrentRegion
For c = 1 To UBound(arr, 2) Step 2
  For r = 2 To UBound(arr)
  dic(arr(r, c)) = arr(r, c + 1) + dic(arr(r, c))
Next
Next
[m2].Resize(dic.Count, 1) = Application.Transpose(dic.keys)
[n2].Resize(dic.Count, 1) = Application.Transpose(dic.items)
MsgBox "统计完毕"
End Sub

追问

我的意思是用代码把A:K列的数据自动统计到M、N列里面,如果A:K列的名称改变时,点击按钮就会生成的,还有我的数据比较大,如果修改列,怎样修改,谢谢!

追答

不用修改,你试过么,只用改写在哪列,[m2] [n2]

追问

你的代码只能统计A、B列,如果我想把D、E、G、H……也统计,代码怎样改,谢谢!

追答

你是用的我的代码么,我代码是自动判断范围的

追问

追答

才看到,为啥有几列空列

不写了,又改需求,没空伺候你

追问

不空列才能用吗?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-08
这个问题用字典法,会容易一些。追问

原本我是公式的,但是由于我的数据量很大,所以想用VBA

追答

楼下已经给出代码了,可用。

相似回答