Web查询VBA刷新

时间:2013-10-10 21:48:46

标签: excel vba excel-web-query

如果我建立了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

我在网上看过各种方法,但没有一种方法适合我。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

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

   'refresh data extracted from webpage
    ActiveWorkbook.RefreshAll

也许你也可以使用它。