eu uso o XLS igual um banco de dados, segue abaixo o codigo
'Carrega arquivo XLS
Str_Txt = TXT_Caminho.Text & txttexto.Text 'caminho e nome do arquivo
' abre uma conexao com a planilha excel
Set oConn = New ADODB.Connection
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Str_Txt & ";" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"";"
' cria o objecto command e define a conexao ativa
Set oCmd = New ADODB.Command
oCmd.ActiveConnection = oConn
' abre a planilha
Planilha = InputBox("Informe o Nome da Tabela na Planilha XLS" & Chr(10) & "Arquivo: " & txttexto.Text, "A T E N Ç Ã O", "Plan1 - MD - ExtracaoGC")
oCmd.CommandText = "SELECT * from [" & Planilha & "$]"
' cria o recordset com os dados
Set oRS = New ADODB.Recordset
oRS.Open oCmd, , adOpenKeyset, adLockOptimistic
Processo_TXT = oRS.RecordCount 'Identifica quantidade de registros no arquivo
oRS.MoveMin 'mover para o primeiro registro
ai é só vc ir dando move next até o final