Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 每分钟自动运行一次宏_Vba_Excel - Fatal编程技术网

Vba 每分钟自动运行一次宏

Vba 每分钟自动运行一次宏,vba,excel,Vba,Excel,早上好 基本上,我从web(abcbourse.com)导入索引数据,并使其每分钟刷新一次 我创建了一个宏来记录每个索引的历史值(从屏幕截图中的CAC40开始,每分钟E列都会出现新值(每次数据自动刷新时) 这是我的宏,运行良好(参见屏幕截图的E列): 我的问题是,我希望每次刷新数据时都运行此宏 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$2" Then Appl

早上好 基本上,我从web(abcbourse.com)导入索引数据,并使其每分钟刷新一次

我创建了一个宏来记录每个索引的历史值(从屏幕截图中的CAC40开始,每分钟E列都会出现新值(每次数据自动刷新时) 这是我的宏,运行良好(参见屏幕截图的E列):

我的问题是,我希望每次刷新数据时都运行此宏

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)

请尝试以下范围的宏
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

请尝试以下范围
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

QueryTable
有一个
AfterRefresh
事件,有文档记录-您可以创建一个类来捕获该事件并使用处理程序来触发宏。
QueryTable
有一个
AfterRefresh
事件,有文档记录-您可以创建一个类来捕获该事件并使用处理程序来触发宏。Nikolaos Polygenis>I我只尝试了B1的代码,这似乎有效。我是这个网站的新手,你的意思是我需要给你的答案打分吗?如果是,我该怎么做?我就是这么做的,它显示一个“1”,一秒钟后显示一个“0”相反,Nikolaos Polygenis>我只尝试了B1的代码,这似乎有效。我是这个网站的新手,你的意思是我需要给你的答案打分吗?如果是,我该怎么做?我就是这么做的,它会显示一个“1”,而在“0”之后的一秒钟