2011-05-24 32 views
5

我有一個從數據連接獲取信息的Excel 2010電子表格。在連接的屬性是「連接字符串」,這是一個URL,其中有幾個參數在查詢字符串中傳遞給服務器。如果您點擊「編輯查詢」,您可以更改網址,然後根據新網址導入新數據。我需要通過VBA來做到這一點。更改Excel Web查詢的URL

比方說,連接字符串是目前http://myserver.com?name=foo 我需要改變,要http://myserver.com?name=bar

如何才能做到這一點?

+0

[連接字符串](http://en.wikipedia.org/wiki/Connection_string)和URL是完全不同的東西。 – pyon 2011-05-24 18:44:01

+0

你的意思是說這是一個'網絡查詢'? – 2011-05-24 18:51:17

+0

呃,不是在這種情況下,他們不是。連接字符串是用於與服務器保持聯繫的URL。在Excel中查看自己的措辭。 – 2011-05-24 18:51:58

回答

6
With ActiveSheet.QueryTables(1) 
    .Connection = "URL;" & NewURL 
    .Refresh 
End With 
+0

太棒了,謝謝。後續問題:我可以用任何其他方式而不是'ActiveSheet.QueryTables(1)'來引用連接嗎?例如,可能通過名稱?最後,在我進行刷新後,我想保存工作簿,以便在關閉它時不會提示用戶這樣做,但如果我在'With'塊後嘗試'ThisWorkbook.Save',則會收到一條消息,指出'保存'將取消掛起的'刷新'。我想它正試圖保存刷新完成之前。有什麼辦法可以解決這個問題嗎? – 2011-05-25 12:10:56

+0

我建議你在創建一個新的Web查詢時嘗試錄製一個宏。記錄的代碼將向您顯示可用的選項:我認爲「Name」和「BackgroundQuery」是您感興趣的屬性。如果將BackgroundQuery設置爲False,則應在代碼移至保存操作之前完成更新。 – 2011-05-25 16:02:21

+0

謝謝@Tim。我剛剛找到了'Backgroundquery:= false'屬性,它的效果很好。 – 2011-05-25 16:19:30