Worksheet_Change确定值不是内容

时间:2015-07-23 19:33:06

标签: excel vba excel-vba

我正在尝试检测单元格值是否有变化,特别是单元格内容。我找到了多个解决方案来确定单元格内容是否已更改,但是当单元格等于另一个单元格时,它不起作用。

例如,我将单元格A1设置为等于B1,然后B1具有调用多个其他单元格的公式,因此我无法返回到开头并确定单元格是否已更改。它需要直接来自A1。

这是我在此网站上找到的示例之一,但不确定A1的值是否已更改,只是内容是否已更改。

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 1 Then
     Cells(Target.Row, 3).Value = Date
End If

End Sub

1 个答案:

答案 0 :(得分:0)

每次Excel中的任何值发生变化时,子函数顶部的函数application.volatile TRUE都会使您的子计算。那么你需要一个全局变量来存储你指定范围的最后已知值,并且只要子运行,就以

开头。
If new_cell_value <> stored_global_variable then... 

并以

结束
    stored_global_variable = new_cell value'
End If

请点击此处获取更多信息[h / t至vzczc原始答案和方法]:Refresh Excel VBA Function Results