今天刚研究清楚,合并单元格VBA代码求和,模拟数据及如图,单元格居中对齐和垂直居中自己设置就好。

VBA代码如下:
Sub MergeArea_sum()
Dim arr, temp, brr, i&, a&, b&, n&, s&, r&
r = Cells(Rows.Count, 1).End(xlUp).Row
arr = Range("a1:a" & r + 1)
ReDim temp(1 To r + 1)
ReDim brr(1 To r, 1 To 1)
Do
b = Cells(a + 1, 2).MergeArea.Count
temp(a + 1) = b
a = a + b
Loop Until a = r
For i = 1 To r
If temp(i) <> "" Then
Do
n = n + 1
s = s + arr(i + n - 1, 1)
Loop Until temp(i + n) <> "" Or i + n = r + 1
brr(i, 1) = s
End If
n = 0: s = 0
Next
[b1].Resize(r) = brr
End Sub