首页 > 解决方案 > 单元格中的先前值

问题描述

我有两列,

  1. 日期”( H栏)
  2. 单元格中的上一个日期”(第一列)

我想使用 VBA 自动保留“日期”的先前值(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

结束子

标签: vba

解决方案


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

推荐阅读