У меня есть цикл, который проходит ~ 15K строк, проверяет, существует ли значение в массиве, и удаляет строку, если нет.Я использовал этот цикл в течение нескольких месяцев без проблем.Теперь каждый цикл занимает около 2 секунд, и я понятия не имею, почему.Я выполнил обычные настройки «установить вычисления вручную» и «отключить обновление экрана» без каких-либо улучшений.
Извините, но данные конфиденциальны, поэтому я не могу дать вам, ребята, исходные файлы
For lngCounter = lngLastrowresults To 3 Step -1
On Error GoTo Handler
If IsError(Application.Match(Range(Mid(strProjLoc, 2, 1) & CStr(lngCounter)), arrProjectID, False)) Then
Range("B" & CStr(lngCounter)).EntireRow.Delete
Debug.Print lngCounter
End If
Next lngCounter
Есть идеи?
Обновление 1: я закрылся из Excel, снова открыл и снова запустил цикл.Это начало бежать быстро, но становится медленнее.
Обновление 2: я изолировал цикл и выполнял F8 через линии.Строка, которая останавливается, является "Range (" B "& CStr (lngCounter)). FullRow.Delete".Кажется, что удаление строки занимает много времени.