В настоящее время я использую приведенный ниже фрагмент кода, который я нашел в stackxchg, чтобы удалить строки, в результате чего в столбце A. нет числового значения. Это работает, однако, это ужасно медленно для листа с 5000 строк. Есть ли способ, которым я могу заставить эту вещь двигаться быстрее? Концепция заключается в том, что у меня есть несколько строк, которые будут выходить из дат только в том случае, если критерии выполняются, и диаграмма будет сгенерирована с использованием дат в этом столбце. Я хотел бы, чтобы ссылка диапазона диаграммы изменилась со строками, но это сложно, так как формулы в строках все время вниз (и для того, чтобы диаграмма выглядела хорошо, строки должны быть полностью пустыми). Моим обходным решением было найти макрос, который мог бы удалить эти строки (но это слишком медленно, используя этот код). Любая помощь будет оценена по достоинству.Excel VBA для удаления строк - как это сделать быстрее?
Sub Sample()
Dim LR3 As Long, i3 As Long
With Sheets("Basket Performance")
LR3 = .Range("A" & .Rows.Count).End(xlUp).Row
For i3 = LR3 To 2 Step -1
If Not IsNumeric(.Range("A" & i3).Value) Or _
.Range("A" & i3).Value = "" Then .Rows(i3).Delete
Next i3
End With
End Sub
Кроме того, я хотел бы создать еще один макрос, который расширяет строку до 5000 строк. Если это проще, возможно, просто макрос, который изменит диапазон задания диаграммы в зависимости от того, сколько строк имеет числовые значения! (это было бы предпочтительнее). Спасибо за любую помощь. – Jemie
Отключите вычисления и отключите события от стрельбы, скорее всего, это то, что замедляет работу. Помимо этого вы можете задуматься о создании диапазона объединения и сразу же удалить целое. –
См. [Медленный процесс удаления строк - Как сделать быстрее?] (Http://stackoverflow.com/questions/35605424/slow-process-on-deleting-rows-how-to-make-faster/35606697#35606697) , – Jeeped