2014-03-19 73 views
0

我需要将单元格A添加到同一行的单元格B中,然后将单元格A重置为零。我做了一些搜索,发现这个代码完美的工作,但我需要它的工作不只是一行整个列。将单元格A添加到单元格B并将单元格A重置为0

因此,列A的所有内容都应该添加到列B,但只能添加到同一行。下面是我发现的代码:

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 

和:

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 

这两套代码的工作就好了细胞A添加到B和A重置为零,但我想这对于工作整个(列A和B),并全部排。

enter image description here

这是我想什么图片。我希望这很清楚,容易理解。我感谢任何人都可以提供的帮助。对此,我真的非常感激。谢谢。

+0

这里是有我找到了代码的链接。 http://stackoverflow.com/questions/22226136/add-value-from-one-cell-to-another-then-reset-cell-value-excel – user3438648

+0

你的第二个代码改变1)'Set A1 = Range(“ A1“)'设置为A1 =范围(”A:A“)''2)'用A1'指向'用目标' - 应该可以帮助 –

回答

0

试试这个:

Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim T As Range, r As Range 
    Set T = Intersect(Target, Range("A:A")) 
    If T Is Nothing Then Exit Sub 
    Application.EnableEvents = False 
    For Each r In T 
     With r 
      .Offset(0, 1).Value = .Offset(0, 1).Value + .Value 
      .ClearContents 
     End With 
    Next r 
    Application.EnableEvents = True 
End Sub 
+0

完美的工作!非常感谢,我真的很感激。 – user3438648

+0

感谢您的反馈!.................. –

相关问题