Есть ли более эффективный способ выполнить следующую операцию добавления трех значений ячеек в строку к соответствующим ячейкам выше, а затем удалить старую строку? Половина времени замораживания макроса; Я запускаю его примерно на 12 000 строк (на листе нет динамических формул).Макрос для удаления строк замерзает в половине случаев
Application.ScreenUpdating = False
For a = Lcell To 2 Step -1
If Cells(a, 23).Value = Cells(a - 1, 23).Value Then
Cells(a, 16).Value = Cells(a, 16).Value + Cells(a - 1, 16).Value
Cells(a, 17).Value = Cells(a, 17).Value + Cells(a - 1, 17).Value
Cells(a, 18).Value = Cells(a, 18).Value + Cells(a - 1, 18).Value
Cells(a - 1, 1).EntireRow.Delete
End If
Next a
Application.ScreenUpdating = True
отправной на дне и рабочих, но тогда ваш удаление строки выше? как это будет работать ?! –
никогда не используйте 'application.screenupdating = false', пока ваш код не будет работать правильно. Я уверен, что вы увидите проблему, если вы это прокомментируете. – FreeMan
Вы прокомментировали 'application.screeunpdating' и прошли через код в отладчике, чтобы узнать, можете ли вы определить, где/почему это происходит неправильно? – FreeMan