- Колонка «A»: список имен текстовых файлов
- Колонка «B»: сколько строк должно быть в текстовых файлах
- Колонка «C»: сколькофактически в текстовых файлах есть строки
- E1: исходный путь
- E2: ограничитель, строки текстового файла будут подсчитаны, если номер RowInSummary текстового файла равен или меньше, чем E2
Мой скрипт подсчитывает строки всех файлов.Но если я установил лимитер слишком высоким (например, 500.000 или 1M) или просто слишком много файлов, скрипт не будет подсчитывать строки всех файлов, потому что программе не хватает памяти.(Ограничитель не нужен, я поставил его как проблему «не хватает памяти», изначально я не хочу его использовать.)
Sub counter()
Dim fso As New FileSystemObject
Dim ts As TextStream
Dim longtext As String
Dim lines As Variant
Dim GoToNum As Integer
Dim Start As Integer
GoToNum = 2
Start = 3
Do Until IsEmpty(Cells(Start, 1))
GoToNum = GoToNum + 1
Start = Start + 1
Loop
For i = 3 To GoToNum
If Cells(i, 2).Value <= Cells(2, 5).Value Then
ConOrg = Cells(1, 4).Value & "\" & Cells(i, 1).Value
Set ts = fso.OpenTextFile(ConOrg, ForReading, False)
longtext = ts.ReadAll
ts.Close
lines = Split(longtext, vbLf)
Cells(i, 3) = UBound(lines) - LBound(lines) - 1
End If
Next i
End Sub
Как скрипт может считать строки всех файлов без "исчерпания памяти"?