¿Cómo usar la función EOF en VBA?

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.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project