如何通过函数检测给定单元格的值的变化

时间:2018-12-23 20:42:14

标签: vba

我喜欢您为以下问题提供了解决方案: 我有一个单元格中随机更改的财务数据,例如A1,由财务软件提供,我想在一个列中一个接一个地记录这些数据,我已经编写了这个小代码,但是没有检测到值的变化因为单元格A1包含软件提供的功能

    Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("A1"), Range(Target.Address)) Is Nothing Then
    Call test
End If
End Sub

Sub test()
Static n As Integer
n = Cells(1, 3).Value ' used for the faste verification of empty cells 
    While Not IsEmpty(Cells(n, 1))
        n = n + 1
    Wend
    Cells(n, 1).Value = Cells(1, 1).Value
    Cells(1, 3).Value = n
End Sub

1 个答案:

答案 0 :(得分:0)

一种简单的方法是创建一个函数,该函数将要跟踪的单元格作为参数。这样,对单元格值(参数)的更改将生成对跟踪功能的调用。

这样的事情将跟踪该函数被调用的次数:

Dim i As Integer
Function tracker(c As Variant) As Integer
    i = i + 1
    tracker = i
End Function