我有一個從數據連接獲取信息的Excel 2010電子表格。在連接的屬性是「連接字符串」,這是一個URL,其中有幾個參數在查詢字符串中傳遞給服務器。如果您點擊「編輯查詢」,您可以更改網址,然後根據新網址導入新數據。我需要通過VBA來做到這一點。更改Excel Web查詢的URL
比方說,連接字符串是目前http://myserver.com?name=foo
我需要改變,要http://myserver.com?name=bar
如何才能做到這一點?
我有一個從數據連接獲取信息的Excel 2010電子表格。在連接的屬性是「連接字符串」,這是一個URL,其中有幾個參數在查詢字符串中傳遞給服務器。如果您點擊「編輯查詢」,您可以更改網址,然後根據新網址導入新數據。我需要通過VBA來做到這一點。更改Excel Web查詢的URL
比方說,連接字符串是目前http://myserver.com?name=foo
我需要改變,要http://myserver.com?name=bar
如何才能做到這一點?
With ActiveSheet.QueryTables(1)
.Connection = "URL;" & NewURL
.Refresh
End With
太棒了,謝謝。後續問題:我可以用任何其他方式而不是'ActiveSheet.QueryTables(1)'來引用連接嗎?例如,可能通過名稱?最後,在我進行刷新後,我想保存工作簿,以便在關閉它時不會提示用戶這樣做,但如果我在'With'塊後嘗試'ThisWorkbook.Save',則會收到一條消息,指出'保存'將取消掛起的'刷新'。我想它正試圖保存刷新完成之前。有什麼辦法可以解決這個問題嗎? – 2011-05-25 12:10:56
我建議你在創建一個新的Web查詢時嘗試錄製一個宏。記錄的代碼將向您顯示可用的選項:我認爲「Name」和「BackgroundQuery」是您感興趣的屬性。如果將BackgroundQuery設置爲False,則應在代碼移至保存操作之前完成更新。 – 2011-05-25 16:02:21
謝謝@Tim。我剛剛找到了'Backgroundquery:= false'屬性,它的效果很好。 – 2011-05-25 16:19:30
[連接字符串](http://en.wikipedia.org/wiki/Connection_string)和URL是完全不同的東西。 – pyon 2011-05-24 18:44:01
你的意思是說這是一個'網絡查詢'? – 2011-05-24 18:51:17
呃,不是在這種情況下,他們不是。連接字符串是用於與服務器保持聯繫的URL。在Excel中查看自己的措辭。 – 2011-05-24 18:51:58