希望有人能回答我们。
我们想要做到以下几点:
在A1中输入值时,此值将添加到B1的值。
然后我们希望A1的值也重置为0,但保持B1的值
这在excel中是否可行?
答案 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