La función EOF (End Of File) en VBA se utiliza para determinar si se ha alcanzado el final de un archivo abierto en modo de entrada (lectura). Esta función es muy útil cuando se trabaja con archivos de texto o cualquier otro tipo de archivos en VBA, ya que te permite leer datos hasta el final del archivo sin provocar errores.
A continuación, te muestro un ejemplo básico de cómo usar la función EOF en VBA:
Sub LeerArchivoHastaEOF()
Dim filePath As String
Dim fileNumber As Integer
Dim linea As String
' Especificar la ruta del archivo
filePath = "C:rutadetuarchivo.txt"
' Obtener un número de archivo libre para abrir el archivo
fileNumber = FreeFile
' Abrir el archivo en modo de entrada
Open filePath For Input As #fileNumber
' Leer el archivo hasta el final
Do While Not EOF(fileNumber)
Line Input #fileNumber, linea ' Leer una línea del archivo
Debug.Print linea ' Imprimir la línea en la ventana de depuración
Loop
' Cerrar el archivo
Close #fileNumber
End Sub
Explicación del código:
- Definiciones y Variables:
- `filePath`: Especifica la ruta completa del archivo que deseas leer.
- `fileNumber`: Obtiene un número de archivo único usando `FreeFile`, que se usará para manejar el archivo abierto.
- Apertura del Archivo:
- `Open`: Utiliza este comando para abrir el archivo en modo de “Input” (lectura). Es importante usar el número de archivo obtenido anteriormente para referenciar este archivo.
- Lectura del Archivo:
- `Do While Not EOF(fileNumber)`: Este bucle se ejecuta mientras el final del archivo no haya sido alcanzado.
- `Line Input #fileNumber, linea`: Lee una línea completa del archivo y la almacena en la variable `linea`.
- `Debug.Print linea`: Imprime cada línea leída en la ventana de depuración.
- Cierre del Archivo:
- `Close #fileNumber`: Cierra el archivo después de completar la lectura, liberando el recurso.
Este es un método eficiente y seguro para leer archivos de texto línea por línea en VBA, asegurándote de no intentar leer más allá del final del archivo, lo que podría causar errores.