Я искал более быстрый способ, чем тот, который у меня уже был, чтобы определить количество строк в текстовом файле. Я искал в интернете и наткнулся на 2 многообещающих решения. Одним из них было решение на основе SQL, а другим - решение, которое я нашел здесь на основе Fso от Кул-Тигина. Я проверил их, и это часть результата:
Number of lines Time elapsed Variant
--------------------------------------------------------
110 00:00:00.70 SQL
110 00:00:00.00 Vanilla VBA (my solution)
110 00:00:00.16 FSO
--------------------------------------------------------
1445014 00:00:17.25 SQL
1445014 00:00:09.19 Vanilla VBA (my solution)
1445014 00:00:17.73 FSO
Я запускал это несколько раз с большими и маленькими числами. Снова и снова ванильный VBA выходил на первое место. Я знаю, что это сильно устарело, но для тех, кто все еще ищет самый быстрый способ определить количество строк в текстовом файле csv /, вот код, который я использую.
Public Function GetNumRecs(ASCFile As String) As Long
Dim InStream As Long
Dim Record As String
InStream = FreeFile
GetNumRecs = 0
Open ASCFile For Input As #InStream
Do While Not EOF(InStream)
Line Input #InStream, Record
GetNumRecs = GetNumRecs + 1
Loop
Close #InStream
End Function