从一个单元格添加值到另一个单元格然后重置单元格值高强

时间:2014-03-06 13:35:11

标签: excel excel-vba vba

希望有人能回答我们。

我们想要做到以下几点:

在A1中输入值时,此值将添加到B1的值。

然后我们希望A1的值也重置为0,但保持B1的值

这在excel中是否可行?

2 个答案:

答案 0 :(得分:2)

在工作表的VBA私有模块上(右键单击报告选项卡并点击“查看代码”),输入以下代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Target.Address = Range("a1").Address Then
        Range("b1") = Range("b1") + Range("a1")
        Range("a1").ClearContents
    End If
    Application.EnableEvents = True
End Sub
只要对工作表进行了更改,就会调用

Worksheet_Change

Application.EnableEvents=False阻止代码连续运行(没有它,对B1的更改也会调用Worksheet_change)。

此代码假定B1中的值始终为数字(或空白)。如果它可能包含字符文本,则需要进行检查以重置其值或不进行增量。

答案 1 :(得分:1)

使用 simoco的建议:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim A1 As Range
    Set A1 = Range("A1")
    If Intersect(Target, A1) Is Nothing Then
    Else
        Application.EnableEvents = False
        With A1
            .Offset(0, 1) = .Offset(0, 1) + .Value
            .ClearContents
        End With
        Application.EnableEvents = True
    End If
End Sub