Скрытие более одного столбца на основе цвета ячейки - PullRequest
0 голосов
/ 23 января 2019

У меня очень большая электронная таблица с условным форматированием, которая окрашивает ячейку в красный цвет (цвет 255), если определенные параметры верны.Эта часть работает нормально.

Моя проблема в том, что я пытаюсь написать макрос, чтобы скрыть весь столбец и весь столбец слева от него, если в первом столбце есть ячейка с красной ячейкой.Например, если столбец N содержит красную ячейку, он будет скрывать столбец N и столбец M. Этот запрос необходимо будет выполнить для всех столбцов «I: HC» (как я уже сказал, это гигантская электронная таблица.) Iбудет связывать этот макрос с кнопкой управления формой, так что когда кнопка активирована, столбцы будут скрыты.

Буду признателен за любые идеи.

1 Ответ

0 голосов
/ 23 января 2019

Пожалуйста, попробуйте проверить DisplayFormat следующим образом:

Private Sub HideRedFilledColumnPairs()
    Dim ws As Worksheet
    Dim lastRow As Long, lastColumn As Long
    Dim r As Long, c As Long

    Set ws = ActiveSheet

    ' get the used range
    lastRow = ws.Cells.Find(What:="*", LookIn:=xlFormulas, _
        SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    lastColumn = ws.Cells.Find(What:="*", LookIn:=xlFormulas, _
        SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

    ' loop your columns row by row
    For c = ws.Range("I:I").Column To ws.Range("HC:HC").Column ' or To lastColumn
        For r = 1 To lastRow
            If ws.Cells(r, c).DisplayFormat.Interior.Color = vbRed Then
                ws.Columns(c).EntireColumn.Hidden = True
                ws.Columns(c - 1).EntireColumn.Hidden = True
                Exit For    ' take next column
            End If
        Next r
    Next c

    Set ws = Nothing
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...