我有两列,
我想使用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
答案 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