VBA - Leer archivo de texto línea por línea

Este tutorial demostrará cómo leer el contenido de los archivos de texto línea por línea con VBA.

Podemos leer el archivo de texto como un archivo completo o línea por línea.

Leer archivo de texto línea por línea

El texto de un archivo de texto suele estar formado por varias líneas, separadas por delimitadores. Estos pueden ser una coma (","), una coma con espacio (","), un punto y coma (";"), un punto y coma con espacio (";"), un espacio (""), una tabulación (vbTab ) o, en raras ocasiones, cualquier otro carácter como una tilde (~). Las líneas normalmente están separadas por un salto de línea (vbCRLF).

La forma más fácil de leer un archivo de texto línea por línea en nuestra Hoja de trabajo en VBA es seleccionar la primera celda donde queremos que se coloque el texto y luego ejecutar el siguiente código:

1234567891011 Sub ReadFile ()Dim strFile como cadena, strLine como cadenastrFile = "C: \ Test \ TestFile.txt"Abra strFile para la entrada como n. ° 1Hacer hasta EOF (1)Entrada de línea n. ° 1, strLineActiveCell = strLineActiveCell.Offset (1, 0) .SeleccionarCírculoCerrar # 1End Sub

Esto colocará cada línea del archivo de texto en una sola celda en Excel.

También podemos leer un archivo de texto en VBA usando FileSystemObject. En el siguiente código, hemos utilizado el enlace tardío con el objeto del sistema de archivos. También puede crear una referencia a él en su proyecto de VBA. Consulte aquí para obtener más información.

123456789101112131415 Sub ReadTextFile ()Dim strLine como cadenaAtenuar FSO como objetoAtenuar TSO como objetoEstablecer FSO = CreateObject ("Scripting.FileSystemObject")Establecer TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Hacer mientras no TSO.strLine = TSO.ReadLineActiveCell = strLineActiveCell.Offset (1, 0) .SeleccionarCírculoTSO.CerrarEstablecer TSO = NadaEstablecer FSO = NadaEnd Sub

Podemos crear un bucle un poco más complicado si queremos separar las líneas en celdas por sus delimitadores. Aquí hemos utilizado el enlace temprano en el código y declarado el objeto del sistema de archivos.

123456789101112131415161718192021222324 Sub ReadTextFileWithSeparators ()Dim StrLine como cadenaAtenuar FSO como nuevo FileSystemObjectAtenuar TSO como objetoDim StrLineElements como varianteDim Index As LongDim i tan largoDelimitador de atenuación como cadenaEstablecer FSO = CreateObject ("Scripting.FileSystemObject")Establecer TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Delimitador = ","Índice = 1Hacer mientras TSO.AtEndOfStream = FalseStrLine = TSO.ReadLineStrLineElements = Dividir (StrLine, Delimitador)Para i = LBound (StrLineElements) a UBound (StrLineElements)Celdas (índice, i + 1) .Valor = StrLineElements (i)Siguiente yoÍndice = Índice + 1CírculoTSO.CerrarEstablecer TSO = NadaEstablecer FSO = NadaEnd Sub

Esto dará como resultado que las líneas se separen en celdas individuales en Excel según el gráfico a continuación.

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave