【VBA案例009】合并单元格汇总

大家好!今天分享一下遇到合并单元格的处理思路。

工作中,为了方便查看数据,很多朋友习惯性的把单元格合并起来,这样使得表格看起来清晰美观了不少。但这样做的同时,会给以后的计算增加很多困难。

比如下边:要计算产品的总库存。

当我们要对合并单元格进行汇总统计的时候,总会遇到很多问题。其实只要你明白合并单元格的底层逻辑之后,问题就会变的简单起来。

合并单元格:其实只保留了区域左上角的一个值,其他位置都是空的。

明白原理之后,我们再来看下VBA代码,详细解析请看文末视频。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub 汇总()

Dim i, j, k
Dim ar

ar = Range("a1:c" & [c65536].End(3).Row)

Dim d As Object, kw$
Set d = CreateObject("Scripting.Dictionary")
'd.CompareMode = vbTextCompare '不区分大小写

For i = 2 To UBound(ar)
If ar(i, 1) = "" Then ar(i, 1) = ar(i - 1, 1)
d(ar(i, 1)) = d(ar(i, 1)) + ar(i, 3)
Next
[F2].Resize(d.Count) = Application.WorksheetFunction.Transpose(d.keys)
[g2].Resize(d.Count) = Application.WorksheetFunction.Transpose(d.items)

End Sub

原始链接