Este tutorial demostrará cómo leer un archivo de texto en una cadena en VBA.
Podemos leer el archivo de texto línea por línea o como un archivo completo.
Leer un archivo de texto completo en una cadena
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 completo en VBA es ejecutar el siguiente código que colocará todo el contenido del archivo de texto en una variable de cadena. Este procedimiento utiliza la instrucción VBA Open y la función VBA FreeFile.
12345678910 | Sub ReadFile ()Atenuar iTxtFile como enteroDim strFile como cadenaDim strFileText como cadenastrFile = "C: \ Test \ TestFile.txt"iTxtFile = FreeFileAbra strFile para la entrada como FreeFilestrFileText = Entrada (LOF (iTxtFile), iTxtFile)Cerrar iTxtFileEnd Sub |
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.
1234567891011 | Sub ReadTextFile ()Dim strText como cadenaAtenuar FSO como objetoAtenuar TSO como objetoEstablecer FSO = CreateObject ("Scripting.FileSystemObject")Establecer TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")strText = TSO.ReadAllTSO.CerrarEstablecer TSO = NadaEstablecer FSO = NadaEnd Sub |
También podemos usar el enlace anticipado en el código y declarar el objeto del sistema de archivos creando una referencia en nuestro proyecto de Excel al objeto del sistema de archivos.
1234567891011 | Sub ReadTextFile ()Dim strText como cadenaAtenuar FSO como nuevo FileSystemObjectAtenuar TSO como objetoEstablecer FSO = CreateObject ("Scripting.FileSystemObject")Establecer TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")strText = TSO.ReadAllTSO.CerrarEstablecer TSO = NadaEstablecer FSO = NadaEnd Sub |