这个问题的难点不在于怎么判断与计算, 最关键的问题是怎么监听到"合并单元格"的事件: Excel VBA无法得知是否进行了合并单元格. 我测试了下对于空单元格执行合并操作时无法触发worksheet的change及SelectionChange事件. 希望有人能给出方法.
不过我做了另外一个效果, 就是合并时无法求和,但合并后再选择合并单元格就可以按要求求和 .
右击工作表标签→
查看代码, 复制以下代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.MergeCells And Not Intersect(Target, Columns(3)) Is Nothing Then
Dim i As Long, j As Long, rng As Range
i = Target.Cells(1, 1).Row
j = i + Target.Rows.Count - 1
Set rng = Range(Cells(i, 1), Cells(j, 1))
Target = WorksheetFunction.Sum(rng)
End If
End Sub
你先计算c3到c20列的值,然后将列值写入变量 合并单元格再写入变量值,这样即可