在循环上调用OLEDBConnection.Refreshing可防止连接刷新完成

时间:2016-08-25 21:12:10

标签: excel vba excel-vba excel-2016

我正在尝试确定连接刷新何时完成。我正在循环并检查连接是否仍然每5秒刷新一次。

只要它保持循环和检查,连接永远不会脱离它的刷新状态。即使它会说“xxx Rows Loaded”,如果脚本停止,它会立即结束。

Private Sub RefreshButton_Click()

    For Each objConnection In ThisWorkbook.Connections
        'Refresh this connection
        objConnection.Refresh

        Dim endTime As Date
        Dim i As Integer
        i = 1

        Do While objConnection.OLEDBConnection.Refreshing

            endTime = DateAdd("s", 5, Now())

            Do While Now() < endTime
                DoEvents
            Loop

            i = i + 1
            Me.RefreshButton.Caption = "Refreshing..." & i
        Loop

    Next

    MsgBox "Finished refreshing all data connections"

如何像这样循环以检查连接是否仍在刷新,而不会阻止它完成?

编辑:如果循环运行了一点然后结束,那么在我关闭MsgBox之后连接立即完成刷新,但从来没有,即使我永远循环使用`DoEvents。

在VBA脚本执行完毕之前看起来还没有完成刷新?

0 个答案:

没有答案