2013-10-10 62 views
0

如果我建立了Web查询连接,那么更新URL并刷新与VBA的连接的最佳方式是什么?Web查询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 

我见过各种方法在线,但没有一个是简洁/为我工作。

在此先感谢您的帮助。

回答

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 
+0

@nightTrevors如果此答案有帮助,请点击旁边的复选框将其接受。 阅读更多[here](http://stackoverflow.com/about) – Santosh

1

我有同样的问题一次,我的解决方案之一,我必须刷新某些宏执行中的Web查询结果,通过VBA。

简单的解决方案,我发现是

'refresh data extracted from webpage 
    ActiveWorkbook.RefreshAll 

也许你也可以用这个。