vba,excel,特定列(c)发生合并单元格时触发条件。

2025-04-02 20:47:07
推荐回答(2个)
回答1:

这个问题的难点不在于怎么判断与计算, 最关键的问题是怎么监听到"合并单元格"的事件: 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


回答2:

你先计算c3到c20列的值,然后将列值写入变量 合并单元格再写入变量值,这样即可