Как скрыть весь столбец, который не содержит ячейку с заливкой - PullRequest
0 голосов
/ 04 октября 2019

У меня есть таблица (X по Y) со случайными ячейками, заполненными красным (она может варьироваться от всех ячеек, заполненных в столбце, до некоторых заполненных ячеек, до не заполненных ячеек в столбце). Я хотел бы скрыть столбцы, в которых нет заполненных ячеек. Приведенный ниже код ищет ячейки, заполненные красным, и скрывает весь столбец независимо от того, есть ли заполненные ячейки. Я хочу скрыть столбцы без заполненных ячеек.

 Dim cell As Range
  For Each cell In Selection
  If cell.Interior.Color = vbRed Then 'finds the filled in cells
  Columns(cell.Column).EntireColumn.Hidden = True 'hides the column with filled in cells
  End If
  Next

Спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 04 октября 2019

Я думаю, возможно, вам нужно определить переменную для записи статуса, который нужно скрыть или нет. Здесь я назвал «Флаг», чтобы указать, нужно ли скрывать столбец или нет.

Sub Hidden_Column()
Dim Flag As Boolean
Dim iRow As Integer
Dim iClm As Integer
Dim ColorNum

With Sheet1
    For iClm = 1 To .Cells(1, 256).End(xlToLeft).Column
        Flag = True
        For iRow = 1 To .Cells(65536, 1).End(xlUp).Row
            ColorNum = .Cells(iRow, iClm).Interior.ColorIndex
            If ColorNum <> -4142 Then       'no color
                Flag = False
                Exit For
            End If
        Next iRow
        If Flag = True Then
            Columns(Cells(iRow, iClm).Column).EntireColumn.Hidden = True
        End If
    Next iClm
End With
End Sub
0 голосов
/ 04 октября 2019

Это позволит скрыть столбцы без красных ячеек в столбце:

  Dim cell As Range
  Dim c as long
  For c = 1 to selection.columns.count

      Dim redFound as Boolean
      redFound = False

      Dim r as Long
      For r = 1 to Selection.Rows.Count

          If Selection.Cells(r,c).Interior.Color = vbRed Then 
              redFound = True
              Exit For
          End If
      Next

      Selection.Columns(c).EntireColumn.Hidden = redFound

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