Excel VBA:计划单元格计算

时间:2011-07-12 09:12:55

标签: excel api excel-vba seo vba

我正在运行一个与API交互的宏来提取有关网站的信息,并且像大多数API一样运行速率限制 - 每秒3个请求/每120秒360个。

由于我有130,000条记录要运行,我不想整天坐在我的电脑上这样做,我知道需要做什么,但我不知道如何。

所以,在我的工作表设置为手动计算的情况下,我可以将UDF复制下来用于所有记录,但是我如何构建一个宏来安排计算每秒2次(我想要保守,所以它不会掉下来向下')?

提前致谢。

1 个答案:

答案 0 :(得分:2)

您可以使用OnTime来安排宏:

Public RunWhen As Double
Public Const cRunIntervalSeconds = 120 ' two minutes
Public Const cRunWhat = "TheSub"  ' the name of the procedure to run

Sub StartTimer()
    RunWhen = Now + TimeSerial(0,0,cRunIntervalSeconds)
    Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _
        Schedule:=True
End Sub

Sub TheSub()
    ''''''''''''''''''''''''
    ' Your code here
    ''''''''''''''''''''''''
    StartTimer  ' Reschedule the procedure
End Sub

Sub StopTimer()
    On Error Resume Next
    Application.OnTime EarliestTime:=RunWhen,Procedure:=cRunWhat, _
        Schedule:=False
End Sub