0

如果我建立了 Web 查询连接,那么更新 URL 和刷新与 VBA 的连接的最佳方法是什么?

这基本上是我想要做的:

Sub RefreshWebQuery()

    Dim request As String
    request = 'some url constructed by concatenating cell values

    'set command text of my web query as request
    'update my query table

End Sub

我在网上看到了各种方法,但没有一种方法对我来说简洁/有效。

在此先感谢您的帮助。

4

2 回答 2

1

刷新查询的最佳方法是设置.Refresh BackgroundQuery := False. 刷新应该刷新结果。您也可以设置.RefreshPeriod = 0.

Sub webquery()
    Dim url As String
    url = "URL;http://test.com"
    With Worksheets("Sheet1").QueryTables.Add(Connection:=url, Destination:=Worksheets("Sheet1").Range("A1"))
        .Name = "Geocoder Query"
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = False
        .RefreshStyle = xlOverwriteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlEntirePage
        .WebFormatting = xlWebFormattingNone
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
End Sub
于 2013-10-11T18:28:51.437 回答
1

我曾经遇到过同样的问题,在我的一个解决方案中,我不得不通过 VBA 在一些宏执行中刷新 Web 查询结果。

我找到的最简单的解决方案是

   'refresh data extracted from webpage
    ActiveWorkbook.RefreshAll

也许你也可以使用它。

于 2016-03-07T07:57:45.900 回答