Leer un archivo de texto línea por línea en VBA
-
Use
Abrir
para leer un archivo de texto línea por línea en VBA -
Use
FileSystemObject
conTextStream
para leer un archivo de texto línea por línea en VBA - Conclusión
¿Desea transferir todos los correos electrónicos almacenados en un archivo a Microsoft Excel para su posterior procesamiento? ¿O desea mantener la información de algunos candidatos preseleccionados en un archivo?
Puede realizar todas estas tareas de manera eficiente con la ayuda de programas automatizados simples.
Leer un archivo de texto en un programa es razonablemente necesario. Casi todos los demás códigos requieren la entrada de un archivo o la salida a un archivo; por lo tanto, es fundamental comprender cómo leer un archivo completo línea por línea, carácter por carácter, etc.
Este artículo enfatiza la lectura de un archivo de texto línea por línea. Puede seguir explorando los diferentes métodos para leer un archivo de texto e implementarlos de acuerdo con los requisitos.
Use Abrir
para leer un archivo de texto línea por línea en VBA
Solo hay unas pocas opciones de VBA diferentes para abrir o cerrar un archivo. Solo unos pocos comandos están disponibles para abrir y cerrar un libro de trabajo, un archivo o una carpeta.
A continuación se muestra un fragmento de código que abre un archivo y lee todo el archivo, línea por línea.
Sub example()
Dim FileNumber As Integer
Dim Data As String
FileNumber = FreeFile()
Open "Filename" For Input As #FileNumber
While Not EOF(1)
Line Input #FileNumber, Data
//Read a data line from the file
//Perform any required actions on the file
Wend
Close #FileNumber
End Sub
El programa mencionado anteriormente es un fragmento de código simple que le permite abrir un archivo, leer datos y cerrarlo. Declara las variables FileNumber
y Data
a lo largo del código.
Para obtener el FileNumber
, se utiliza la función FreeFile()
. La función FreeFile()
devuelve el siguiente número de archivo disponible para abrir el archivo.
El FileNumber
devuelto por la función FreeFile()
se utiliza en todo el programa para abrir el archivo, leerlo y cerrarlo.
Nota: Es imprescindible cerrar todos los archivos que se abren a lo largo del programa.
Después de que la función FreeFile()
devuelva FileNumber
, se utiliza la instrucción Open
para abrir el archivo. Toma el nombre de archivo para Entrada
o Salida
y utiliza el siguiente Número de archivo
disponible.
El archivo se lee línea por línea dentro del bucle While
hasta que no se alcanza el final del archivo: While Not EOF(FileNumber)
. El bucle lee los datos línea por línea y almacena el flujo de datos en la variable Data
.
Puede agregar las declaraciones de código dentro del bucle While
si desea realizar alguna acción en los datos.
Dado que el archivo se abre para Entrada
en este programa, los datos se leen dentro del bucle Mientras
. Si el usuario abre los datos en el modo Salida
, se puede usar la siguiente instrucción para escribir los datos en el archivo:
Write #FileNumber, "This is a sample data"
La declaración "Estos son datos de muestra"
se escribe en el archivo usando el comando anterior.
Use FileSystemObject
con TextStream
para leer un archivo de texto línea por línea en VBA
La segunda solución requiere una referencia a Microsoft Scripting Runtime. Se utiliza el tipo de datos FileSystemObject
, que le permite leer archivos.
Aquí hay un fragmento de código para leer un archivo línea por línea:
Dim fso As FileSystemObject: Set fso = New FileSystemObject
Set txtStream = fso.OpenTextFile(filePath, ForReading, False)
Do While Not txtStream.AtEndOfStream
txtStream.ReadLine
Loop
txtStream.Close
Se declara un FileSystemObject
llamado fso
y se establece en la primera línea. La variable txtStream
es un objeto TextStream
devuelto cuando el archivo se abre para leer.
Un objeto TextStream
permite al usuario abrir el archivo en modo de lectura, escritura o anexo.
Se utiliza un bucle Do While
para analizar el archivo, línea por línea. El final del archivo se comprueba con txtStream.AtEndOfStream
, y el archivo se lee con el comando ReadLine
.
El fragmento de código menciona cómo leer un archivo línea por línea hasta el final. Si desea escribir una línea en el archivo, use TextStreamObject.WriteLine
para enviar el texto al archivo.
Al final del programa, se cierra el archivo que se abrió para lectura.
Nota: El archivo se puede abrir en un modo a la vez; el usuario no puede escribir y leer desde el mismo objeto de archivo. Se deben crear diferentes objetos para abrir archivos en diferentes modos.
Conclusión
Puede abrir fácilmente un archivo, leer desde el archivo, escribir en el archivo y cerrar el archivo usando instrucciones simples de VBA. Puede usar Macros para realizar la misma tarea para diferentes archivos; por lo tanto, el poder de automatización que ofrece Microsoft Office es increíble y aplaudible.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub