동적 행 수를 사용하여 셀 범위에 조건부 서식을 정렬하고 적용하는 VBA 매크로

동적 행 수를 사용하여 셀 범위에 조건부 서식을 정렬하고 적용하는 VBA 매크로

범위가 있습니다 (아래 이미지).

엑셀의 스크린샷

점에 유의하시기 바랍니다:

  • 범위는 다른 응용 프로그램에서 생성되므로 행 수가 계속 변경되고 Excel '테이블' 형식이 아닙니다.
  • 그러나 열 수는 고정되어 있습니다.
  • Totals항상 마지막 행인 행이 있습니다 (그러나 이 이후의 셀에는 ''로 평가되는 수식이 포함되어 있습니다).

D헤더를 키(오름차순)로 사용하여 범위를 정렬하는 VBA 매크로에 대한 도움이 필요합니다 .

[아래 정렬된 표 링크 참조]

점에 유의하시기 바랍니다:

  • Totals(항상 마지막 행)은 무시되고 정렬되지 않아야 합니다.

이 정렬 후에는 동일한 VBA 매크로가 키와 동일한 헤더를 사용하여 범위에 조건부 서식을 적용하기를 원합니다 . 서식은 동일한 D범위 주위에 테두리를 적용합니다 .D

최종 테이블은 다음과 같습니다.http://goo.gl/H118Lx

점에 유의하시기 바랍니다:

  • D헤더의 고유 값 주위에 테두리 , 즉 셀 값 개수가 1보다 크지 않은 행을 원하지 않습니다 .

답변1

VBA가 전혀 필요하지 않습니다. 조건부 형식의 유연성을 더 잘 이해하면 됩니다. 그렇기 때문에 서투른 질문이라도 대답해 드리겠습니다.

있는 그대로 열을 기준으로 정렬할 수 있으며 D, 공백이 있는 유일한 행인 경우 합계 행이 맨 아래에 표시됩니다. 아래와 같이 조건부 형식을 전체 열에 적용합니다.

형식: 왼쪽 테두리
범위: A:A
공식:=AND($D1<>"",OR($D1=OFFSET($D1,-1,0),$D1=OFFSET($D1,1,0)))

형식: 오른쪽 테두리
범위: E:E
공식:=AND($D1<>"",OR($D1=OFFSET($D1,-1,0),$D1=OFFSET($D1,1,0)))

형식: 상단 테두리
범위: A:E
공식:=AND($D1<>"",$D1<>OFFSET($D1,-1,0),$D1=OFFSET($D1,1,0))

형식: 하단 테두리
범위: A:E
공식:=AND($D1<>"",$D1=OFFSET($D1,-1,0),$D1<>OFFSET($D1,1,0))


이 방법을 사용하면 이 시트가 다음과 같이 바뀔 것입니다.

전에

... 이 시트에:

후에

관련 정보