单元格中的先前值

时间:2018-06-15 10:57:35

标签: vba

我有两列,

  1. 日期”(列 H
  2. 单元格中的上一个日期”(列
  3. 我想使用VBA自动保留“Date”(H列)的先前值,并在“单元格中的上一个日期”(第I列)中保存更改前的值。

    实施例。如果 H2 = 01-06-2018 且值已更改为 02-06-2018 I2 应该而不是显示 01-06-2018 ,因为它是单元格的上一个值。

    我希望这段代码适用于整列单元格,而不仅仅是单个单元格。列 H 中的值不是手动更新的,而是来自查看从第三方系统中提取SQL的公式。因此可以同时更改 H 列中的大量单元格。

    你能帮帮我吗?提前致谢。

    这是我的代码:

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim newVal As Variant
    If Target.Count > 1 Then
        Exit Sub
    End If
    If Intersect(Range("H:H"), Target) Is Nothing Then
        Exit Sub
    End If
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    newVal = Target.Value
    Application.Undo
    Target.Offset(0, 1).Value = Target.Value
    Target.Value = newVal
    Application.ScreenUpdating = True
    Application.EnableEvents = True
    

    End Sub

1 个答案:

答案 0 :(得分:0)

Private varPrev As Variant

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 8 Then
        varPrev = Target.Value
    End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 8 Then
        Cells(Target.Row, Target.Column + 1).Value = varPrev
    Else
    End If
End Sub