Скрыть строки в Excel на основе значения нескольких столбцов - PullRequest
0 голосов
/ 03 июля 2018

Как я могу скрыть строки на основе нескольких значений столбцов? Пример. Если поля «Проекты», «Участник группы», «Приоритет» и «Статус» не заполнены, строка будет скрыта.

enter image description here

1 Ответ

0 голосов
/ 03 июля 2018

Я видел ваш другой пост, и я не думаю, что именно так вы должны строить свою панель инструментов. По сути, вы создаете копию своего другого листа. Кажется, что Advance Filter было бы лучше подходит здесь.

Если вы используете текущий метод, это определит наименьшую используемую ячейку в ваших столбцах и скроет строки над этой ячейкой на основе ваших критериев. Я бы добавил командную кнопку с именем что-то вроде «Обновить мой тире» и связал бы ее с этим макросом.

Option Explicit

Sub HideRow()

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim LRowC, LRowD, LRowF, LRowH, LRow As Long
    LRowC = ws.Range("C" & ws.Rows.Count).End(xlUp).Row
    LRowD = ws.Range("D" & ws.Rows.Count).End(xlUp).Row
    LRowF = ws.Range("F" & ws.Rows.Count).End(xlUp).Row
    LRowH = ws.Range("H" & ws.Rows.Count).End(xlUp).Row
    LRow = Application.WorksheetFunction.Max(LRowC, LRowD, LRowF, LRowH)

Dim i As Long

Application.ScreenUpdating = False
ws.Rows.Hidden = False
    For i = LRow To 2 Step -1
        If ws.Range("C" & i).Text = "" And ws.Range("D" & i).Text = "" And ws.Range("F" & i).Text = "" And ws.Range("H" & i).Text = "" Then
            ws.Rows(i).EntireRow.Hidden = True
        End If
    Next i
Application.ScreenUpdating = True

End Sub
...