【发布时间】:2015-03-03 20:36:12
【问题描述】:
有没有一种方法可以检测单元格在更改之前要包含的内容。我正在尝试根据单元格中的先前值执行操作。我知道有 Worksheet_Change 但它使用的目标是新值。
【问题讨论】:
-
也许这会有所帮助? stackoverflow.com/questions/4668410/…
标签: excel worksheet-function vba
有没有一种方法可以检测单元格在更改之前要包含的内容。我正在尝试根据单元格中的先前值执行操作。我知道有 Worksheet_Change 但它使用的目标是新值。
【问题讨论】:
标签: excel worksheet-function vba
您可以撤消更改,将撤消的值填充到变量中,然后像这样重做更改:
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
【讨论】:
我们必须记住里面有什么。假设单元格 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
【讨论】: