【问题标题】:Detecting what value was in a cell prior to a change在更改之前检测单元格中的值
【发布时间】:2015-03-03 20:36:12
【问题描述】:

有没有一种方法可以检测单元格在更改之前要包含的内容。我正在尝试根据单元格中的先前值执行操作。我知道有 Worksheet_Change 但它使用的目标是新值。

【问题讨论】:

标签: excel worksheet-function vba


【解决方案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

【讨论】:

    【解决方案2】:

    我们必须记住里面有什么。假设单元格 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
    

    【讨论】:

      猜你喜欢
      • 2021-09-08
      • 1970-01-01
      • 1970-01-01
      • 2013-04-24
      • 2012-05-13
      • 1970-01-01
      • 1970-01-01
      • 2020-06-15
      • 1970-01-01
      相关资源
      最近更新 更多