Как одновременно работать с несколькими несмежными строками в Excel - VBA

Узнай цену своей работы

Формулировка задачи:

Надо одновременно применить скрытие строк к нескольким несмежными строкам. Строк может быть много. Автофильтр и Расширенный фильтр не подходит, т.к. надо анализировать до 15 столбцов одновременно. Хотя может и можно использовать Расширенный фильтр. Если скрывать по одной строке, то код долго работает. Вот хочу применить скрытие к нескольким строкам одновременно, может быстрее будет. Использовал:
Здесь:

Range("1:1", "3:3")

- ограничение на количество символов в аргументе

("1:1", "3:3")

. Сейчас думаю, как использовать

Application.Union

. Как сформировать аргумент из 30 диапазонов? Может кроме этих двух инструментов для работы с несколькими несмежными строками есть ещё что-то? При выполнении кода обратил внимание, что в строке состояния пересчитываются формулы. Отключил автоматический пересчёт формул и быстро стало работать. Ещё отключил обновление экрана. Но с использованием Union всё-равно быстрее работает, чем при скрытии каждой строки.

Решение задачи: «Как одновременно работать с несколькими несмежными строками в Excel»

textual
Листинг программы
Sub test4()
Dim t As Single, i&, c$, a$
t = Timer
For i = 1 To 5000 Step 2
a = i & ":" & i & ","
If Len(c & a) > 255 Then Range(Left(c, Len(c) - 1)).Delete: c = a Else c = c & a
Next
Range(Left(c, Len(c) - 1)).Delete
Debug.Print Timer - t
End Sub

Оцени полезность:

6   голосов , оценка 4.5 из 5
Похожие ответы