Manage Web Queries
Most of the preceding samples get an existing QueryTable, modify its properties, and then call Refresh. I could have used the QueryTables collection’s Add
method to create these queries on the fly. However, I would need to remember to delete previously created QueryTables.
Getting rid of unneeded query tables on a worksheet can seem like an unimportant housekeeping chore, but it is very important to avoid having redundant or unneeded queries running in the background. Background queries degrade performance, spontaneously connect to the Internet, and can generate asynchronous errors, as mentioned earlier. This can really confuse users!
How to do it
The following code creates three new query tables on the active worksheet:
Dim ws As Worksheet, qt As QueryTable, i As Integer
Set ws = ActiveSheet
For i = 1 To 3
Set qt = ws.QueryTables.Add("URL;http://finance.yahoo.com/q/ecn? _ &
s=yhoo", [A12])
qt.Name = "Temp Query"
qt.WebTables = "22"
qt.WebSelectionType = xlSpecifiedTables
qt.WebFormatting = xlWebFormattingNone
qt.BackgroundQuery = False
qt.RefreshStyle = xlOverwriteCells
qt.Refresh
NextWhen this code runs it creates three query tables on the worksheet named Temp_Query, Temp_Query_1, and Temp_Query_2 respectively. There’s no easy way to manage query tables through the Excel user interface, however, if you press Ctrl+G you’ll see the names for the new query tables listed in the Go To dialog box (Figure 4-8).
Figure 4-8. Excel automatically numbers query ...