使用excel VBA将所有更改的数据从单元格捕获到另一个单元格

时间:2017-08-24 05:09:16

标签: excel vba excel-vba excel-formula excel-2010

我的工作簿的sheet1 A1单元格不断更新新数据,我的需求被捕获所有更改并保存到sheet2“B”列。(新数据将添加到新行,如B1,B2,B3等) 使用下面的代码我可以使用工作表更改功能

来实现它
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = Range("A1").Address Then
        Dim intLastRow As Long
        intLastRow = Sheet2.Cells(Sheet2.Rows.Count, "B").End(xlUp).Row
        Sheet2.Cells(intLastRow + 1, "B") = Target.Value

    End If

End Sub

如果我手动将数据输入到原始单元格(sheet1 A1),此代码可以正常工作。但如果我使用任何公式说“= C2”,它就不起作用了。任何使用公式更新的数据都没有在sheet2 B上被捕获。想知道我是否可以捕获使用公式更新的值

1 个答案:

答案 0 :(得分:1)

Private Sub Worksheet_Calculate()

With Sheet2
    With .Cells(.Rows.Count, "B").End(xlUp)
        If .Value <> Sheet1.Range("A1").Value Then
            .Offset(1).Value = Sheet1.Range("A1").Value
        End If
    End With
End With

End Sub