我正在运行一个与API交互的宏来提取有关网站的信息,并且像大多数API一样运行速率限制 - 每秒3个请求/每120秒360个。
由于我有130,000条记录要运行,我不想整天坐在我的电脑上这样做,我知道需要做什么,但我不知道如何。
所以,在我的工作表设置为手动计算的情况下,我可以将UDF复制下来用于所有记录,但是我如何构建一个宏来安排计算每秒2次(我想要保守,所以它不会掉下来向下')?
提前致谢。
答案 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