El Objeto QueryTable (Tabla de consulta) representa un rango de datos externos en una hoja de calculo, las fuente externas pueden provenir de un servidor de SQL, una base de datos de Microsoft Access o una consulta Web.
El siguiente procedimiento crea una consulta web para importar una tabla específica.
Si copiamos el siguiente procedimiento en un modulo y le damos a ejecutar observaremos que se ha creado una tabla de datos automáticamente, procedente de la pagina web eleconomista, dicha tabla se actualiza automáticamente cada minuto.
Sub IBEX()
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.eleconomista.es/indice/IBEX-35", Destination:=Range("$A$1"))
.Name = "IBEX-35"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 1
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingRTF
.WebTables = "3"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = True
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
Este procedimiento lo podemos dividir en tres partes principales, donde creamos la consulta con ActiveSheet.QueryTables.Add , las propiedades de la tabla importada donde indicamos con RefreshPeriod la periodicidad con la que queremos que se actualice la tabla desde la página web, y por ultimo las opciones de importar, que como parte importante tenemos la opción WebTables donde indicamos el número de índice de tabla que queremos importar.