早上好 基本上我是从网上导入索引数据(abcbourse.com),我每分钟刷新一次。
我创建了一个宏来记录每个索引的历史值(从屏幕截图中可以看到CAC40开始,每分钟E列都有新值(每次数据自动刷新) 这是我的宏,运作良好(见截图的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
我的问题是,我希望每次刷新数据时都运行此宏。我最初使用的是
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
这确实在调用我的宏,但前提是我手动更改了B2。如果我等待数据自动刷新,我的宏不会被调用(即使数据已经改变)。
我想知道如何自动化这个过程,我需要你的帮助。
提前致谢
Ps:我不知道是否重要,但我的宏保存在 VBAProject(“本文档”)> Sheet2(Sheet2)
答案 0 :(得分:0)
请尝试以下范围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