我有一个例程,可以在更改后收集旧值。 它基于此板中的示例,使用undo方法收集旧值。 我们发现如果通过点击“输入”来更改单元格,则Application.undo将起作用。如果通过单击另一个单元格更改单元格,Application.Undo将不起作用。 这是我到目前为止的代码:
Private Sub worksheet_change(ByVal Target As Range)
Dim nextRow As Integer
Dim oldValues As Variant
Dim newValues As Variant
Dim oldRev, newRev, diffRev As Double
Dim NumRows, NumCols As Integer
Dim lRow, lCol As Integer
If Not Intersect(Target, Range("Small")) Is Nothing Then
' On Error GoTo err
NumRows = Target.Cells.Rows.Count
NumCols = Target.Cells.Columns.Count
newValues = Target.Value2
Application.EnableEvents = False
Application.Undo
oldValues = Target.Value2
...
在这两种情况下,单元格中的值都会发生变化。 在这两种情况下,工作表都会更改触发器。 除非使用Enter,否则撤消不起作用。 谢谢你的帮助。 富