Excel 从发生变化的单元格插入新的数据行

Excel 从发生变化的单元格插入新的数据行

我曾尝试进行搜索,但无法找到正确的术语来获得良好的结果。

我正在寻找一种方法或建议来在 Excel 中创建一个宏,该宏将从一个单元格复制数据并在每次更改时将其插入到新行中。

我希望能够积累大约 50 条数据变化的历史记录。

谢谢杰夫

答案1

以下是一个快速代码片段,可帮助您入门并提供一些要搜索的内容。此代码将监视单元格 A1,如果其发生变化,它将记录其变化的时间以及第 3 行中变化后的值。这可能需要一些额外的逻辑才能发挥作用。代码进入正在更改的工作表的 VBA 代码中。

Private Sub Worksheet_Change(ByVal Target As Range)

    'WatchedCell is the cell we want to log changes of, I used cell A1
    Dim WatchedCell As Range
    Set WatchedCell = Application.ActiveSheet.Range("A1")

    'Target comes from the Worksheet_Change event and tells us what changed in the event
    'See if the watched cell is among the cells which changed
    Dim Inter As Range
    Set Inter = Intersect(WatchedCell, Target)

    'Insert a row to record the time in the column A and the value after the change in column B
    If Not Inter Is Nothing Then
        Rows(3).EntireRow.Insert
        Application.ActiveSheet.Range("A3") = Now()
        Application.ActiveSheet.Range("B3") = WatchedCell
    End If
End Sub

一个重要的问题(Gary's Student 在你的问题评论中暗示了这一点)是,例如,如果单元格 A1 是一个公式,并且只在单元格 A2 发生变化时发生变化,那么工作表_更改当您更改 A2 时,事件无法识别 A1 已发生更改,因为它是由于 Worksheet_Calculate 事件而更改的。

相关内容