Macro para leer archivos de excel de ancho fijo

Estoy comenzando con macros de excel, y quería obtener los datos de un archivo txt de ancho fijo, este es el código que tengo:

Sub Import_TXT_Anchofijo()
Dim Filtro As String
Dim nFichero As Integer
Dim sCadena As Variant
Dim i As Double
nFichero = FreeFile

Filtro = " TXT(*.TXT),"
txt = Application.GetOpenFilename(Filtro)
If txt <> Empty Then
Open txt For Input As nFichero
i = 0
Do While Not EOF(nFichero)
Line Input #nFichero, datos
i = i + 1
sCadena = datos
otro = ActiveWorkbook.Name
Range("a1:a" & Range("a65000").End(xlUp).Row).Copy
With Sheets(1)
.Cells(i, 1) = Trim(Mid(sCadena, 1, 27))
.Cells(i, 2) = Trim(Mid(sCadena, 62, 66))
.Cells(i, 3) = Trim(Mid(sCadena, 87, 101))
.Cells(i, 4) = Trim(Mid(sCadena, 106, 112))
.Cells(i, 5) = Trim(Mid(sCadena, 119, 124))
.Cells(i, 6) = Trim(Mid(sCadena, 131, 132))
End With
Loop
Close nFichero
End If
End Sub

Sin embargo al correrlo solo me toma la primera fila del txt.

2 Respuestas

Respuesta
1

Ya probé tu macro y sí me carga varias filas.

Revisa tu archivo txt, tal vez en el archivo exista solamente una línea, tal vez las líneas no tienen control de línea (CR)

Prueba creando un archivo manualmente con 3 o 4 líneas y ejecuta tu macro

Avísame cualquier duda

¡Gracias! 

Si no tienes dudas y te sirvieron los comentarios r ecuerda valorar la respuesta.

Respuesta

Sugiero leer sobre la instrucción "Mid", la estás aplicando mal.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas