Вариант использования: для каждой ячейки в столбце A (RangeK5: K700), в которой указан текст c (в данном примере «Неделя 1») в ячейке B2, строка в таблице, содержащая указанный c текст будет скрыт
У меня есть код, который работает, но это занимает много времени, так как таблица, которую я сейчас «фильтрую», велика и со временем получит больше строк. Мне интересно, есть ли способ ускорить код. Я не большой объектно-ориентированный эксперт, поэтому я склонен кодировать «длинный» путь. Я думаю (моя терминология будет неправильной, поэтому извините), что если бы я мог как-то отслеживать все строки, чтобы скрыть, а затем скрыть их в конце, а не в каждом l oop, это было бы быстрее. Это возможно?
Я «понял» это с помощью поиска и молитвы в Google, поэтому, если есть какие-либо изменения, которые я могу сделать, я буду признателен, если вы их услышите. Большое спасибо заранее !!
Примечание: В2 может иметь до 13 различных опций (неделя 1 -> неделя 13 и c). Я покажу код, только если B2 "Неделя 1"
Sub CycleThroughWorksheet()
Set Target = Range("B2")
If Target.Value = "Week 1" Then
Call HideWeek2
Call HideWeek3
Call HideWeek4
Call HideWeek5
Call HideWeek6
Call HideWeek7
Call HideWeek8
Call HideWeek9
Call HideWeek10
Call HideWeek11
Call HideWeek12
Call HideWeek13
End If
End Sub
------
Sub HideWeek1()
For Each Cell In Worksheets("Gantt Table").Range("K5:K700").Cells
If Cell.Text = "Week 1" Then
Cell.EntireRow.Hidden = True
End If
Next
End Sub
-------
Sub RunWeekView()
Call PreventScreenFlicker
Rows.EntireRow.Hidden = False
Call CycleThroughWorksheet
End Sub