VBA检查特定单元格范围内的变化

我需要一个函数来检查vba中某个单元格的特定范围是否发生了变化:

Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A9:J100")) Is Nothing Then MsgBox Target.Address End If End Sub 

这个代码工作,问题是:他们改变了相同的值(抛出互联网更新)。 如何检查更新的单元格值是否真的更改为新的? (不用一一检查)

提前致谢

在这个小例子中,我们维护数据块的内存,从而可以testing是否有任何值已经改变。 请注意内存已被Dim'ed在子上面,使其静态:

 Dim MemoryOfThingsPast() As Variant Dim init As Long Private Sub Worksheet_Change(ByVal Target As Range) Dim Interesting As Range Dim I As Long, J As Long, K As Long Set Interesting = Range("A9:J100") If init = 0 Then MemoryOfThingsPast = Interesting init = 1 Exit Sub End If If Intersect(Target, Interesting) Is Nothing Then Exit Sub K = 1 For I = LBound(MemoryOfThingsPast, 1) To UBound(MemoryOfThingsPast, 1) For J = LBound(MemoryOfThingsPast, 2) To UBound(MemoryOfThingsPast, 2) v1 = Interesting(K) v2 = MemoryOfThingsPast(I, J) If v1 <> v2 Then MsgBox "Cell " & Interesting(K).Address & " has really changed" End If K = K + 1 Next J Next I MemoryOfThingsPast = Interesting End Sub