每十秒重新计算十个单元格

我正在尝试在大约2000个地点使用Google Maps API。 我被告知API只允许每十秒钟进行十次计算,因此我们需要Excel工作表来做到这一点。 我的代码:

'recalculate cells Sub Recalculatecells() Dim irow As Integer Dim i As Integer Dim j As Integer ' Worksheets("Sheet2").Active Range("A1").Select Selection.End(xlDown).Select iRow = ActiveCell.Row Range("N1").Value = irow For i = 1 To iRow Range("N" & Str(i)).Formula = "=GetCoordinates(A" & i & ")" j = j + 1 If j = 10 Then Application.Wait (Now + TimeValue("00:00:10")) j = 0 Else j = j + 1 End If Next i End Sub 

这是目前在线上的错误:

 Range("N" & Str(i)).Formula= "=GetCoordinates(A" & i & ")" 

(注意: =getcoordinates是运行Maps API的函数。)

我不知道为什么错误在那里,一旦这个错误被删除将代码工作?

Application.OnTime方法可以调用它所在的例程。

 Sub Recalculatecells() Application.StatusBar = "Calculating ..." Worksheets("Sheet2").Range("N1:N10").Calculate Application.StatusBar = vbNullString 'put something here to optionally exit the timed loop Application.OnTime Now + TimeSerial(0, 0, 10), "Recalculatecells" End Sub 

我发现这允许在工作簿上工作的更多自由度,而不是停留在相同的子程序中,并使用For ... Next增量计数器。