2014-03-06 320 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中的值始終爲數字(或空白)。如果它可能包含字符文本,則需要將檢查重置其值或不執行增量。

相關問題