Lo primero que tienes que hacer es agregar la referencia a excel en tu proyecto (Proyecto -> Referencias... -> Microsoft Excel)
Una forma que me dijeron es:
Dim mixl As Object
Set mixl = CreateObject("excel.application")
mixl.Workbooks.Open "c:\tempo.xls"
mixl.Application.Visible = True
' cualquiera de estas dos formas es válida
Debug.Print mixl.Cells(3, "I")
Debug.Print mixl.Cells(3, 9)
mixl.Quit
Set mixl = Nothing
--------------------------------
Otra forma es:
Dim mixl As Object
Set mixl = GetObject("f:\tarifa\Tarifas Serviempresa 2005.xls")
mixl.application.Visible = True
mixl.Parent.windows(1).Visible = True
Set mixl = GetObject("f:\tarifa\Tarifas Serviempresa 2005.xls")
lista_catalogo.AddItem mixl.Worksheets(1).Range("I" & 4320).Value
Esto es para para extraer el dato de la celda I4320 (existe en mi hoja) de la hoja 1 y me da el error 381 (el indice de la matriz de propiedades no es valido).
Tambien he probado cambiando la ultima linea por la siguiente:
lista_catalogo.List(1) = mixl.Worksheets(1).Cells(4320, "I").Value
------------------------------------------
Otra:
Dim objExcel As Excel.Application, i As Integer
Set objExcel = New Excel.Application
With objExcel
.Workbooks.Open App.Path & "\MiPlantilla.xls"
.Range("I" & 4).Select
List1.AddItem .ActiveCell.FormulaR1C1
.Workbooks.Close
.Quit
-----------------------------------------
Y por ultimo la que yo uso es mediante consultas SQL creando un ODBC (Inicio -> Ejecutar -> odbcad32) del tipo "Driver do Microsoft Excel(*.xls) y seleccionando el archivo excel.
Entonces lo tratas como un ODBC normal (con connection, command, etc.) y las consultas tienes que hacerlas de la siguiente forma:
"Select DATO From [Conteo_Datos$]"
donde DATO es el nombre de una columna si el nombre esta puesto en la parte superior de la misma y [Conteo_Datos$] es la hoja donde hacemos la consulta.
Cuando haces referencia a una hoja del libro la tabla se llama igual que la hoja, pero le tienes que agregar el signo de dolar $ al final del nombre, pero como este no es un nombre válido para una consulta SQL, entonces lo encierras entre corcheques.
Saludos