application.undo在使用“input”时起作用,但如果点击另一个单元则不起作用

我有一个收集改变后的旧价值的例程。 这是基于这个板子上的例子,使用undo方法来收集旧的值。 我们发现,如果通过点击“Enter”来更改单元格,那么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 ... 

在这两种情况下,单元格中的值都会改变。 在这两种情况下,工作表更改触发器。 只是使用回车才能撤销撤销。 谢谢你的帮助。 丰富