Vba: как скрыть строки на основе критериев
Вы можете использовать следующий синтаксис в VBA, чтобы скрыть строки на основе значения ячейки:
SubHideRows ()
Dim i As Integer
For i = 2 To 10
If Cells(i, 1).Value = " Mavs " Then
Cells(i, 1).EntireRow.Hidden = True
Else
Cells(i, 1).EntireRow.Hidden = False
End If
Next i
End Sub
Этот конкретный макрос скрывает все строки в диапазоне от 2 до 10, которые имеют значение ячейки, равное «Mavs» в первом столбце.
Вы также можете использовать следующий макрос для отображения всех строк:
SubUnhideRows ()
Rows.EntireRow.Hidden = False
End Sub
В следующем примере показано, как использовать этот синтаксис на практике.
Пример. Используйте VBA, чтобы скрыть строки на основе критериев.
Предположим, у нас есть следующий набор данных, содержащий информацию о различных баскетболистах:
Допустим, мы хотим скрыть каждую строку, содержащую слово «Mavs», в столбце команды.
Для этого мы можем создать следующий макрос:
SubHideRows ()
Dim i As Integer
For i = 2 To 10
If Cells(i, 1).Value = " Mavs " Then
Cells(i, 1).EntireRow.Hidden = True
Else
Cells(i, 1).EntireRow.Hidden = False
End If
Next i
End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Обратите внимание, что каждая строка, содержащая слово «Mavs», в столбце «Команда» теперь скрыта.
Если мы хотим, мы можем создать следующий макрос для отображения всех строк:
SubUnhideRows ()
Rows.EntireRow.Hidden = False
End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Обратите внимание, что все строки отображаются снова.
Обратите внимание, что в нашем макросе мы указали For i = 2 To 10 , чтобы скрыть строки от 2 до 10 в зависимости от критериев.
Не стесняйтесь изменять эти начальные и конечные значения, чтобы скрыть строки в другом диапазоне строк.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
VBA: как применить условное форматирование к ячейкам
VBA: как подсчитать количество строк в диапазоне
VBA: как подсчитать ячейки с определенным текстом