RE:Leer una Hoja Excel como una tabla
Podés hacer de la siguiente manera
With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DBQ="El nombre de la planilla de ecxel";DefaultDir="El directorio donde se encuentra";Driver={Microsoft Excel Driver (*.xls)};DriverId=790;FIL=excel 5.0;Im" _
), Array( _
"plicitCommitSync=Yes;MaxBufferSize=512;MaxScanRows=8;PageTimeout=5;ReadOnly=0;SafeTransactions=0;Threads=3;UserCommitSync=Yes;" _
)), Destination:="Rango donde desees que te muestre el resultado"
.Sql = "Consulta SQL"
.FieldNames = True
.RefreshStyle = xlInsertDeleteCells
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = False
.HasAutoFormat = True
.BackgroundQuery = True
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:=False
.SavePassword = True
.SaveData = True
End With
Para referirte al FROM es el nombre del archivo con ruta incluída más el nombre de la hoja que querés. pej querés hacer referencia a la hoja de calculo Hora en el archivo trabajo.xls que se encuentra en C:\Mis Documentos
`C:\Mis Documentos\trabajo.xls`.`Hora$`
Para hacer referencia a un campo, el nombre del campo va a ser el títuo de la comlumna. por ejemplo en la hoja Hora del anterior archivo, el título nombre.
hacer referencia de la siguiente manera `Hora$`.`nombre`