首页 > 解决方案 > 是否有任何 VBA 函数仅将更改的值从一列复制到另一列?

问题描述

我在 excel 中有一个与其他数据源链接的表,它会自动更新。我正在寻找一个代码来从 C 列捕获旧值(仅来自更改的单元格)并将它们放在 D 列中。

我已经尝试过这段代码,但显然它一次只捕获一个值,并且不捕获自动更新的值。

Dim oval

Worksheet_SelectionChange

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
oval = Target.Value
End Sub

Worksheet_Change

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo SkipError
Application.EnableEvents = False

If Not Intersect(Target, Me.ListObjects("Table1").ListColumns(3).DataBodyRange) Is Nothing Then

 If Target.Value <> oval Then

    Cells(Target.Row, "D").Value = oval
    End If
End If
SkipError:
Application.EnableEvents = True

End Sub

我希望 D 列在更新时具有 C 列的旧值。

屏幕截图表

标签: excelvbaworksheet-functionauto-update

解决方案


推荐阅读