Chuck은 셀에 사용 된 채우기 색상을 기준으로 워크 시트의 레코드를 정렬해야하는 필요성에 대해 썼습니다. Excel은 이러한 작업을 수행하는 내장 함수를 제공하지 않지만 수행해야하는 모든 정렬에 도움이되는 사용자 정의 함수를 만들 수 있습니다. 다음 매크로를 고려하십시오.

Function GetFillColor(rng As Range) As Long     GetFillColor = rng.Interior.ColorIndex End Function

채우기 색상이 A 열의 셀에 있다고 가정하면 빈 열 B가 있는지 확인하기 만하면됩니다. 그런 다음 B2 셀에 다음 수식을 넣고 각 레코드에 대해 복사합니다.

=GetFillColor(A2)

완료되면 B 열에 A 열에 사용 된 각 채우기 색상의 인덱스 값이 포함됩니다. 그런 다음 B 열을 기준으로 정렬 할 수 있습니다. 그러면 모든 유사한 채우기 색상을 함께 그룹화 한 결과가 나타납니다.

예를 들어 특정 순서 (노란색 먼저, 빨간색 두 번째, 녹색 세 번째 등)로 정렬해야하는 경우와 같이 좀 더 정교해야하는 경우 채우기 색상의 인덱스 값에만 의존 할 수 없습니다. 이러한 경우 색상을 반환하는 다른 방법을 사용해야합니다.

다음 매크로를 고려하십시오.

Function GetColor(rngIndex As Range, rngSource As Range) As Long     Dim lngColor As Long     Dim J As Integer

Application.Volatile     lngColor = rngSource.Interior.ColorIndex

GetColor = 99       'Set to default color     For J = 1 To rngIndex.Count         If rngIndex(J).Interior.ColorIndex = lngColor Then             GetColor = J         End If     Next J End Function

이 매크로는 마지막 매크로와 다르게 작동합니다. 제대로 작동하려면 두 가지 범위가 필요합니다. 첫 번째 범위는 기본적으로 색상을 정렬하려는 순서를 나타내는 색상 표입니다. 예를 들어, E1부터 E9까지의 셀에는 정렬에 사용할 9 가지 색상이 원하는 순서대로 포함될 수 있습니다. 그런 다음 B2 셀에 다음 수식을 배치하고 각 레코드에 대해 복사합니다.

=GetColor($E$1:$E$9,A2)

결과적으로 B 열에는 색상 표의 색상을 나타내는 1에서 9까지의 값이 포함됩니다. 셀의 색상이 색상 표에 해당 색상이없는 경우 함수는 99 값을 반환합니다. 테이블의 레코드를 정렬하면 원하는대로 정렬됩니다.

_ 참고 : _

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

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

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

이 팁 (2009)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다.