Excel VBA 函数更新单元格值 += 上方单元格值

Excel VBA 函数更新单元格值 += 上方单元格值

在此处输入图片描述

我怎样才能做到,如果我在单元格区域 B3:E3 中输入任何内容,其值将是我输入的任何内容加上上面单元格的值。

例如:如果我在单元格 C3 中输入 20,则一旦我按下回车键或单击其他位置,该值将更新为 40。

到目前为止我知道我需要类似的东西:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Range("B3:E3").Value = Range("B2:E2").Value

End Sub

并且我知道我需要以某种方式访问​​偏移值,但是 VBA 不是我的强项,而且我似乎无法正确地表述这个问题。

答案1

您需要为此添加大量错误检查,但这里只是基本内容:

Private Sub Worksheet_Change(ByVal Target As Range)

  ' If we're not in the range of interest
  ' do nothing.
  If Intersect(Target, Me.Range("B2:E2")) Is Nothing Then
    Exit Sub
  End If
  ' We don't want this event to fire itself!
  Application.EnableEvents = False
  ' Now add the row above (rowOffset = -1) to the value.
  Target.Value = Target.Value + Target.Offset(-1, 0).Value
  ' Don't forget to re-enable events, otherwise there'll
  ' be no more VBA events fired.
  Application.EnableEvents = True

End Sub

相关内容