Mira, inténtalo con este ejemplo comentado:
Código:
Private Sub Command1_Click()
Dim oExcel As Excel.Application
Dim xLibro As Excel.Workbook
Dim xHoja As Excel.Worksheet
Dim Columnas As Integer, Filas As Integer
Dim i As Integer, j As Integer
Screen.MousePointer = vbHourglass
Set oExcel = CreateObject("Excel.Application")
' Si el libro no se encuentra en el mismo directorio de la aplicación, cámbiale la ruta
Set xLibro = oExcel.Workbooks.Open(App.Path & "\Libro1.xls")
Set xHoja = xLibro.Sheets(1)
' contar las filas y columnas de la Hoja Excel
Columnas = xHoja.Rows(1).Find("").Column
Filas = xHoja.Columns(1).Find("").Row
With MsFlexGrid1
' asignar al Grid las mismas filas y columnas que la Hoja Excel
.Cols = Columnas
.Rows = Filas
' guardar los datos en el Grid
For i = 1 To Columnas - 1
.Col = i - 1
For j = 1 To Filas - 1
.Row = j
.Text = xHoja.Cells(j, i)
Next j
Next i
End With
Screen.MousePointer = vbDefault
' cerrar el objeto Excel
oExcel.Quit
End Sub
Claro, al hacer referencia al Grid le antepones el nombre del formulario donde se encuentre.
Un saludo