2014-03-06 230 views

回答

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 
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中的值始终为数字(或空白)。如果它可能包含字符文本,则需要将检查重置其值或不执行增量。

相关问题