2013-10-10 112 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 

也許你也可以用這個。