每分钟自动运行一次macros

早上好,基本上我是从网上(abcbourse.com)导入索引数据,并且每分钟刷新一次。

我创build了一个macros,以便logging每个索引的历史值(从CAC40开始,正如您在屏幕截图中所看到的那样,每分钟刷新E列(每次数据自动刷新)。这是我的macros,正在工作(请参见截图的E栏):

Sub Historical_Index() Dim LastLRow As Integer, CurrentIndexValue As Single LastRow = Range("E" & Rows.Count).End(xlUp).Row CurrentIndexValue = Range("B1") Do If Not IsEmpty(CurrentIndexValue) = True Then Cells(LastRow + 1, 5).Value = CurrentIndexValue Exit Do End If Loop End Sub 

在这里输入图像说明

我的问题是,我希望这个macros在每次刷新数据时都运行。 我最初使用了一个

 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$2" Then Application.EnableEvents = False Call Historical_Index Application.EnableEvents = True End If End Sub 

这确实是调用我的macros,但只有当我手动改变B2。 如果我等待数据被自动刷新,我的macros不会被调用(即使数据已经改变)。

我想知道为了自动化这个过程该怎么做,我需要你的帮助。

提前致谢
Ps:我不知道是否重要,但我的macros保存在VBAProject(“本文”) > Sheet2(Sheet2)

请尝试下面的范围B1:B8:

 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Sheet1.Range("B1:B8")) Is Nothing Then Application.EnableEvents = False Call Historical_Index Application.EnableEvents = True End If End Sub 

或者如果你只想检查B2

 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Sheet1.Range("B2")) Is Nothing Then Application.EnableEvents = False Call Historical_Index Application.EnableEvents = True End If End Sub