Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Target.Row < 5 Then Exit Sub If Target.Column <> 7 Then Exit Sub If Target.Value = "本月合计" Then m = Target.Row - 1 i = Range("C" & m + 1).End(xlUp).Row Range("H" & m + 1) = Evaluate("SUMPRODUCT(($B$7:$B" & i & "=$B" & i & ")*H$7:H" & i & ")") Range("M" & m + 1) = Evaluate("SUMPRODUCT(($B$7:$B" & i & "=$B" & i & ")*M$7:M" & i & ")") Range("N" & m + 1) = Evaluate("SUMPRODUCT(($B$7:$B" & i & "=$B" & i & ")*N$7:N" & i & ")") Range("P" & m + 1) = Evaluate("SUMPRODUCT(($B$7:$B" & i & "=$B" & i & ")*P$7:P" & i & ")") Range("Q" & m + 1) = Evaluate("SUMPRODUCT(($B$7:$B" & i & "=$B" & i & ")*Q$7:Q" & i & ")") Range("J" & m + 1) = Evaluate("SUMPRODUCT(($B$7:$B" & i & "=$B" & i & ")*J$7:J" & i & ")") ElseIf Target.Value = "本年累计" Then n = Target.Row - 2 Range("H" & n + 2) = Evaluate("SUMPRODUCT(($B$7:$B" & n & ">0)*H$7:H" & n & ")") Range("J" & n + 2) = Evaluate("SUMPRODUCT(($B$7:$B" & n & ">0)*J$7:J" & n & ")") Range("M" & n + 2) = Evaluate("SUMPRODUCT(($B$7:$B" & n & ">0)*M$7:M" & n & ")") Range("N" & n + 2) = Evaluate("SUMPRODUCT(($B$7:$B" & n & ">0)*N$7:N" & n & ")") Range("P" & n + 2) = Evaluate("SUMPRODUCT(($B$7:$B" & n & ">0)*P$7:P" & n & ")") Range("Q" & n + 2) = Evaluate("SUMPRODUCT(($B$7:$B" & n & ">0)*Q$7:Q" & n & ")") End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Target.Row < 5 Then Exit Sub If Target.Column <> 7 Then Exit Sub If Target.Value = "本月合计" Then m = Target.Row - 1 i = Range("C" & m + 1).End(xlUp).Row Range("H" & m + 1) = Evaluate("SUMPRODUCT(($B$7:$B" & i & "=$B" & i & ")*H$7:H" & i & ")") Range("M" & m + 1) = Evaluate("SUMPRODUCT(($B$7:$B" & i & "=$B" & i & ")*M$7:M" & i & ")") Range("N" & m + 1) = Evaluate("SUMPRODUCT(($B$7:$B" & i & "=$B" & i & ")*N$7:N" & i & ")") Range("P" & m + 1) = Evaluate("SUMPRODUCT(($B$7:$B" & i & "=$B" & i & ")*P$7:P" & i & ")") Range("Q" & m + 1) = Evaluate("SUMPRODUCT(($B$7:$B" & i & "=$B" & i & ")*Q$7:Q" & i & ")") Range("J" & m + 1) = Evaluate("SUMPRODUCT(($B$7:$B" & i & "=$B" & i & ")*J$7:J" & i & ")") ElseIf Target.Value = "本年累计" Then n = Target.Row - 2 Range("H" & n + 2) = Evaluate("SUMPRODUCT(($B$7:$B" & n & ">0)*H$7:H" & n & ")") Range("J" & n + 2) = Evaluate("SUMPRODUCT(($B$7:$B" & n & ">0)*J$7:J" & n & ")") Range("M" & n + 2) = Evaluate("SUMPRODUCT(($B$7:$B" & n & ">0)*M$7:M" & n & ")") Range("N" & n + 2) = Evaluate("SUMPRODUCT(($B$7:$B" & n & ">0)*N$7:N" & n & ")") Range("P" & n + 2) = Evaluate("SUMPRODUCT(($B$7:$B" & n & ">0)*P$7:P" & n & ")") Range("Q" & n + 2) = Evaluate("SUMPRODUCT(($B$7:$B" & n & ">0)*Q$7:Q" & n & ")") End If End Sub