Importar txt con longitud fija variada en las filas
publicado
Sub importarEnDesarrollo()
Dim wb As Workbook
Set wb = ThisWorkbook
Dim ws_main As Worksheet
Set ws_main = wb.Worksheets("Main")
Dim directorio As String
'directorio = ws_main.range("path").Value
directorio = "C:\Users"
Dim sCadena As Variant
Dim nFichero As String
Dim i As Integer
i = 0
Open directorio For Input As nFichero
Do While Not EOF(nFichero)
Line Input #nFichero, datos
i = i + 1
sCadena = datos
With Sheets(1)
.Cells(i, 1) = Trim(Mid(sCadena, 1, 10))
.Cells(i, 1) = Trim(Mid(sCadena, 12, 4))
.Cells(i, 1) = Trim(Mid(sCadena, 16, 14))
.Cells(i, 1) = Trim(Mid(sCadena, 31, 4))
.Cells(i, 1) = Trim(Mid(sCadena, 48, 1))
End With
Loop
End Sub
Con el código anterior, puedo importar el fichero con esas logitudes.
Pero el problema es que mi archivo tiene esas longitudes fijas en las 20 primeras lines, otra longitudes distintas en las filas 21 a 25 y otras longitudes de la 26 a la 40.
Agradezco cualquier ayuda.
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Sub importarEnDesarrollo()
Dim wb As Workbook
Set wb = ThisWorkbook
Dim ws_main As Worksheet
Set ws_main = wb.Worksheets("Main")
Dim directorio As String
'directorio = ws_main.range("path").Value
directorio = "C:\Users"
Dim sCadena As Variant
Dim nFichero As String
Dim i As Integer
i = 0
Open directorio For Input As nFichero
Do While Not EOF(nFichero)
Line Input #nFichero, datos
i = i + 1
sCadena = datos
With Sheets(1)
.Cells(i, 1) = Trim(Mid(sCadena, 1, 10))
.Cells(i, 1) = Trim(Mid(sCadena, 12, 4))
.Cells(i, 1) = Trim(Mid(sCadena, 16, 14))
.Cells(i, 1) = Trim(Mid(sCadena, 31, 4))
.Cells(i, 1) = Trim(Mid(sCadena, 48, 1))
End With
Loop
End Sub
Con el código anterior, puedo importar el fichero con esas logitudes.
Pero el problema es que mi archivo tiene esas longitudes fijas en las 20 primeras lines, otra longitudes distintas en las filas 21 a 25 y otras longitudes de la 26 a la 40.
Agradezco cualquier ayuda.