엑셀 98-2003 버전 VBA코드나 등등 하는 방법 자세히 부탁드릴게요 관련 질문 해주셨네요.
엑셀 97-2003 버전에서 VBA를 활용하여 사람(행 항목)이 지속적으로 추가·변경되어도 피벗 테이블을 새로 고침할 때 조건부 서식을 유지하는 방법에 대해 단계별로 안내하겠습니다.
1. 피벗 테이블 생성하기
• 데이터 범위 선택 후 피벗 테이블을 만듭니다.
• 피벗 필드에 '사람' 항목을 넣습니다.
2. 조건부 서식 적용하기
• 원본 데이터 또는 피벗 테이블의 특정 조건에 따라 조건부 서식을 적용합니다.
• 피벗 테이블 내부에서 조건부 서식을 직접 적용하는 경우, 피벗 테이블 구조가 변경될 수 있어 유지가 어려우니,
• 대신 원본 데이터에 조건부 서식을 적용하는 편이 더 안정적입니다.
3. VBA를 이용하여 조건부 서식을 피벗 테이블 범위에 복구하는 방법
• 피벗 새로 고침 후 조건부 서식을 재적용하는 매크로를 작성합니다.
아래는 기본적인 VBA 예제입니다:
`vba
Private Sub Workbook_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable)
' 피벗 테이블이 새로 고침될 때마다 조건부 서식을 다시 적용하는 코드
Dim pt As PivotTable
Set pt = Target
' 피벗 테이블의 데이터 범위 지정
Dim rng As Range
Set rng = pt.TableRange1
' 조건부 서식 제거 (기존 서식 삭제)
rng.FormatConditions.Delete
' 원하는 조건부 서식을 다시 적용 (예: 값이 100 이상일 때 빨간색 배경)
Dim cond As FormatCondition
Set cond = rng.FormatConditions.Add(Type:=xlCellValue, Operator:=xlGreaterOrEqual, Formula1:="100")
cond.Interior.Color = vbRed
End Sub
`
이 코드는 워크북 또는 시트의 코드 영역에 넣어야 하며, 피벗 테이블이 업데이트될 때마다 조건부 서식을 재적용합니다.
4. 중요한 팁
• 피벗 테이블 항목이 추가·변경될 때마다 VBA 매크로를 실행하도록 설정하면, 조건부 서식이 유지됩니다.
• 'Workbook_Open' 또는 'Worksheet_PivotTableUpdate' 이벤트에 코드를 넣어 자동 실행되게 할 수 있습니다.
• 피벗 테이블 범위가 동적으로 변하는 경우 VBA에서 범위를 자동으로 재설정하는 로직을 넣는 것도 고려하세요.
이 방법을 이용하면 피벗 새로 고침 시 조건부 서식이 사라지는 문제를 해결할 수 있습니다. 필요하시면 구체적인 상황에 맞는 코드 예제도 더 제공해드릴 수 있습니다.
답변 도움 되셨길 바랍니다~ 채택 부탁드리며 추가 문의는 채택 후 답변드리겠습니다.
AI 분석 및 채팅