¿Cuál es una forma súper rápida de leer archivos grandes línea por línea en VBA?

Creo que he encontrado una manera muy eficiente de leer archivos muy, muy grandes línea por línea. Por favor, dígame si sabe de una manera mejor / más rápida o si puede mejorar. Estoy tratando de mejorar la codificación, por lo que cualquier consejo que tengas sería bueno. Esperemos que esto sea algo que otras personas también puedan encontrar útil.

Parece ser algo así como 8 veces más rápido que usar Line Input de mis pruebas.

'This function reads a file into a string.                        '
'I found this in the book Programming Excel with VBA and .NET.    '
Public Function QuickRead(FName As String) As String
    Dim I As Integer
    Dim res As String
    Dim l As Long

    I = FreeFile
    l = FileLen(FName)
    res = Space(l)
    Open FName For Binary Access Read As #I
    Get #I, , res
    Close I
    QuickRead = res
End Function

'This function works like the Line Input statement'
Public Sub QRLineInput( _
    ByRef strFileData As String, _
    ByRef lngFilePosition As Long, _
    ByRef strOutputString, _
    ByRef blnEOF As Boolean _
    )
    On Error GoTo LastLine
    strOutputString = Mid$(strFileData, lngFilePosition, _
        InStr(lngFilePosition, strFileData, vbNewLine) - lngFilePosition)
    lngFilePosition = InStr(lngFilePosition, strFileData, vbNewLine) + 2
    Exit Sub
LastLine:
    blnEOF = True
End Sub

Sub Test()
    Dim strFilePathName As String: strFilePathName = "C:\Fld\File.txt"
    Dim strFile As String
    Dim lngPos As Long
    Dim blnEOF As Boolean
    Dim strFileLine As String

    strFile = QuickRead(strFilePathName) & vbNewLine
    lngPos = 1

    Do Until blnEOF
        Call QRLineInput(strFile, lngPos, strFileLine, blnEOF)
    Loop
End Sub

¡Gracias por el consejo!

Respuestas a la pregunta(9)

Su respuesta a la pregunta