有没有办法在更改之前检测单元格包含的内容。我试图根据单元格中的先前值执行操作。我知道那里的Worksheet_Change,但它使用的目标是新值。
答案 0 :(得分:1)
您可以撤消更改,将撤消的值填充到变量,然后重做更改,如下所示:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim OldValue As Variant, NewValue As Variant
NewValue = Target.Value
Application.EnableEvents = False
Application.Undo
OldValue = Target.Value
Target.Value = NewValue
Application.EnableEvents = True
MsgBox OldValue
End Sub
答案 1 :(得分:0)
我们必须记住那里有什么。说单元格 B9 是有意义的。在标准模块中包含单行:
Public OldValue As Variant
并在工作表代码区域中:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B9")) Is Nothing Then Exit Sub
v = Target.Value
MsgBox v & vbCrLf & OldValue
OldValue = v
End Sub