使VBA宏自动/持续运行

使VBA宏自动/持续运行,vba,macros,Vba,Macros,我的VBA代码有点问题。我有一些与彭博社相关的实时数据,我希望每次单元格值高于特定阈值时都能弹出一个窗口。要做到这一点,我需要找到一种方法,不断运行我的宏,以检查我的条件是否得到验证。。但是我不知道怎么做。。我当前的VBA代码是: Private Sub Worksheet_Activate() Dim i As Long For i = 2 To 99 If Cells(i, 11).Value > 25000 Then MsgBox "Last t

我的VBA代码有点问题。我有一些与彭博社相关的实时数据,我希望每次单元格值高于特定阈值时都能弹出一个窗口。要做到这一点,我需要找到一种方法,不断运行我的宏,以检查我的条件是否得到验证。。但是我不知道怎么做。。我当前的VBA代码是:

Private Sub Worksheet_Activate()  
Dim i As Long  
For i = 2 To 99  
    If Cells(i, 11).Value > 25000 Then  
       MsgBox "Last trade on " & Cells(i, 1).Value & " is higher than 25 000"  
    End If  
Next i  
End Sub

如果你能帮我写这段代码,那就太好了!提前感谢

您可以尝试以下内容:

Private Sub Worksheet_Activate()  
  Dim i As Long  
  Do while (true)
    For i = 2 To 99  
      If Cells(i, 11).Value > 25000 Then  
        MsgBox "Last trade on " & Cells(i, 1).Value & " is higher than 25 000"  
      End If  
    Next i
    Application.Wait (Now + TimeValue("0:00:10")) 'wait 10 seconds
  Loop
End Sub
编辑:如果相同,要使其停止显示,请使用单元格(如10列之外)存储当前值并进行比较

Private Sub Worksheet_Activate()  
  Dim i As Long  
  Do while (true)
    For i = 2 To 99  
      If Cells(i, 11).Value > 25000 Then  
        If Cells(i, 11).Value <> Cells(i, 1).ValueThen
          MsgBox "xxxxx"
          Cells(i, 11).Value = Cells(i, 1).Value 'setting value
        End If
      End If  
    Next i
    Application.Wait (Now + TimeValue("0:00:10")) 'wait 10 seconds
  Loop
End Sub
Private子工作表\u Activate()
我想我会坚持多久
边做边做(对)
对于i=2到99
如果单元格(i,11)。值>25000,则
如果单元格(i,11)。值单元格(i,1)。值然后
MsgBox“xxxxx”
单元格(i,11)。值=单元格(i,1)。值的设置值
如果结束
如果结束
接下来我
Application.Wait(现在+时间值(“0:00:10”))等待10秒
环
端接头

通过搜索
ms excel计时器
您将找到类似的内容,谢谢!我会试试的谢谢,明天市场开盘时我会试试:)我刚试过,但是循环总是让Excel堵塞,我再也不能点击单元格了。。所以我用Application.OnTime替换了Application.Wait,并删除了“Do-While..Loop”,它工作得非常好。再次感谢!:)嗨,伙计们,我还有一个问题。。VBA代码工作正常,每10秒运行一次。。但是,如果每10秒信息相同,则弹出窗口会出现多次(每10秒一次),并且仅当不再验证该条件时才会停止。。是否有办法使弹出窗口仅在第一次满足条件时出现?例如,如果条件在1分钟后仍然得到验证,我不希望看到弹出窗口@teckchai lim@BitAccessor存储满足条件的单元格(例如,在数组中或工作表行中的单元格(可能是时间戳))并在显示msgbox之前检查它们是否已存储。msgbox应在何时再次出现?第二天?下一个小时?