Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$10" Then Dim i As Long Dim j As Long Dim rng As Range Dim 数量 As Double Dim 金额 As Double For Each rng In Range("A2:E7") If rng = Range("B10") Then If Cells(1, rng.Offset(, 1).Column) = "数量" Then 数量 = 数量 + rng.Offset(, 1) ElseIf Cells(1, rng.Offset(, 1).Column) = "金额" Then 金额 = 金额 + rng.Offset(, 1) End If If Cells(1, rng.Offset(, 2).Column) = "数量" Then 数量 = 数量 + rng.Offset(, 2) ElseIf Cells(1, rng.Offset(, 2).Column) = "金额" Then 金额 = 金额 + rng.Offset(, 2) End If End If Next rng Range("C10") = 数量 Range("D10") = 金额 End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) Dim Col%, Sl!, Je! Dim Rng As Range Dim C As Range If Target.Address = "$B$10" Then Col = Sheet1.UsedRange.Columns.Count For i = 1 To Col If Cells(1, i) = "项目" Then Set Rng = Range(Cells(2, i), Cells(7, i)) For Each C In Rng If C = [B10] Then If Cells(1, C.Column + 1) = "数量" Then Sl = Sl + C.Offset(, 1) End If If Cells(1, C.Column + 1) = "金额" Then Je = Je + C.Offset(, 1) End If If Cells(1, C.Column + 2) = "金额" Then Je = Je + C.Offset(, 2) ElseIf Cells(1, C.Column + 2) = "数量" Then Sl = Sl + C.Offset(, 2) End If End If Next C End If Next i [C10].Value = Sl [D10].Value = Je End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$10" Then Dim i As Long Dim j As Long Dim rng As Range Dim 数量 As Double Dim 金额 As Double For Each rng In Range("A2:E7") If rng = Range("B10") Then If Cells(1, rng.Offset(, 1).Column) = "数量" Then 数量 = 数量 + rng.Offset(, 1) ElseIf Cells(1, rng.Offset(, 1).Column) = "金额" Then 金额 = 金额 + rng.Offset(, 1) End If If Cells(1, rng.Offset(, 2).Column) = "数量" Then 数量 = 数量 + rng.Offset(, 2) ElseIf Cells(1, rng.Offset(, 2).Column) = "金额" Then 金额 = 金额 + rng.Offset(, 2) End If End If Next rng Range("C10") = 数量 Range("D10") = 金额 End If End Sub