В основном я хочу скопировать определенные строки на другой лист. Для этого я использую эти строки в al oop:
For i = 2 To lRow
Select Case ws.Cells(i, 1).Value
Case "00"
Case "01"
Case "02"
Case "03"
Case Else
wsNew.Rows(rowCounter).Value = ws.Rows(i).Value
rowCounter = rowCounter + 1
End Select
Next i
Перед этим большой оператор выбора для копирования только определенных строк. ws - мой оригинальный лист, wsNew - мой новый лист, а rowCounter - всего лишь помощник, чтобы узнать, сколько я заполнил wsNew. lRow - это количество строк в моем листе,
Я просто хочу, чтобы строки выпали в остальное скопировано на новый лист.
Так как я делаю только .Value = .Value, я не совсем понимаю, как он вообще использует ram, так как я думал, что .Value = .Value буквально использует только ram для этой строки и немедленно получает сборщик мусора.
Код работает с i от 2 до 100, но данные, с которыми я работаю, имеют ~ 23000 строк. И после примерно 21000 строк у меня кончается память для 32-битного Excel.
Использование 64-битного Excel не подходит для банкоматов.