큰 데이터 테이블에서 Ed는 특정 열이 활발하게 필터링되고 있는지 신속하게 스캔하고 확인할 수 있기를 원합니다. 그는 해당 열을 기반으로하는 필터가있을 때 열의 배경색을 변경하기 위해 조건부 서식을 적용 할 수있는 방법이 있는지 궁금합니다.

이 작업에 접근 할 수있는 몇 가지 방법이 있습니다. 이들 모두는 매크로를 포함하며 각 매크로의 목적은 필터가 특정 열에 대해 작동하는지 확인하는 것입니다. 한 가지 옵션은 필터에 대한 워크 시트를 검사하는 함수를 만들고, 필터가 제자리에있는 경우 필터링 된 영역의 각 열을 확인하여 해당 열에 필터가 있는지 확인하는 것입니다. 다음 매크로는이를 수행합니다.

Sub ColorFilterColumn()

Dim flt As Filter     Dim iCol As Integer     Dim lRow As Long     Dim rTemp As Range     Dim bFullCol As Boolean

' Set as True if you want entire column shaded     bFullCol = False

If ActiveSheet.AutoFilterMode Then         iCol = ActiveSheet.AutoFilter.Range.Column         lRow = ActiveSheet.AutoFilter.Range.Row         Application.EnableEvents = False         For Each flt In ActiveSheet.AutoFilter.Filters             If bFullCol Then                 Set rTemp = Cells(lRow, iCol).EntireColumn             Else                 Set rTemp = Cells(lRow, iCol)

End If

If flt.On Then                 rTemp.Interior.Color = vbYellow             Else                 rTemp.Interior.ColorIndex = xlColorIndexNone             End If

Set rTemp = Nothing             iCol = iCol + 1         Next flt         Application.EnableEvents = True     End If End Sub

매크로가 작동중인 필터를 찾으면 필터링 된 테이블의 첫 번째 셀이나 필터가있는 전체 열을 강조 표시 (노란색)합니다. 셀 또는 전체 열이 강조 표시되는지 여부는 bFullCol 변수에 할당 된 True / False 값에 따라 결정됩니다.

원하는 경우 필터가 특정 열에 적용되는지 여부에 따라 True 또는 False를 반환하는 함수를 만들 수 있습니다. 이러한 함수를 사용하면 반환 된 값을 기반으로 열을 형식화하는 조건부 형식화 규칙을 만들 수 있습니다.

Function bHasFilter(rcell As Range) As Boolean     Dim lBaseCol As Long     Dim lCol As Long

Application.Volatile     bHasFilter = False

If ActiveSheet.AutoFilterMode Then         With ActiveSheet.AutoFilter             lBaseCol = .Range.Column             lCol = rcell.Column - lBaseCol + 1             If lCol > 0 And lCol <= .Filters.Count Then                 If .Filters(lCol).On Then bHasFilter = True             End If         End With     End If End Function

이 함수를 사용하려면 워크 시트 또는 조건부 서식 규칙에서 다음과 같은 수식을 사용하면됩니다.

=bHasFilter(F23)

이 함수는 먼저 효과가있는 필터가 있는지 확인합니다. 그렇다면 수식에 전달 된 셀의 열이 필터링 된 열 범위 내에 있는지 여부를 계산합니다. (수식에서 참조되는 행은 실제로 중요하지 않습니다.) 그렇다면 해당 열에 대해 필터가 켜져 있는지 확인합니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (13410)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다.