Excel의 사용자 지정 정렬은 매우 유용한 기능입니다. 이 기사에서는 Excel VBA를 사용하여 범위에서 사용자 지정 정렬을 자동으로 업데이트하는 방법에 대해 설명합니다.
사용자 지정 정렬을 사용하면 Excel의 놀라운 기능임을 알 수 있습니다. 그러나이 기능을 자주 사용하면 문제를 발견 할 수도 있습니다. 특정 데이터와 정보가있는 범위에서 정렬합니다. 범위에 추가 데이터 및 정보를 추가하면 범위의 순서가 자동으로 변경되지 않습니다. 아래 이미지는 이러한 조건의 예를 보여줍니다.
범위에 새 데이터 세트를 추가하면 순위가 자동으로 변경되지 않습니다. 동일한 기준으로 설정된 새 데이터로이 더 큰 범위를 계속 정렬하려면 사용자 정의 정렬 프로세스를 다시 수행해야합니다. 특히 워크 시트의 데이터와 정보를 지속적으로 업데이트해야하는 경우 매우 번거 롭다는 것을 알 수 있습니다. 범위에 새 정보를 추가 할 때마다 다시 정렬해야합니다. 이 문제를 해결하고 작업을 빠르게 완료하려면이 기사를 계속 읽으십시오.
매크로 기록
사용자 지정 정렬 기준이 매우 복잡하면 VBA 코드를 직접 작성하기가 어렵습니다. 따라서 이제 먼저 매크로를 기록 할 수 있습니다. 이 매크로의 코드는 다른 매크로에서 사용할 수 있습니다. 코드를 기록하는 과정은 매우 쉽습니다.
- 매크로를 기록하기 전에 리본에 VBA 탭을 추가해야합니다. 여기에서 리본의 탭을 마우스 오른쪽 버튼으로 클릭합니다.
- 그런 다음 메뉴에서 "리본 사용자 지정"을 선택합니다.
- 이제 "Excel 옵션"창에서 "기본 탭"목록의 "개발자"옵션을 선택합니다.
- 그 후 창에서 "확인"을 클릭합니다. 따라서 리본에 탭을 추가했습니다.
- 이제 워크 시트로 돌아갑니다. 추가 한 "개발자"탭을 클릭합니다.
- 그런 다음 도구 모음에서 "매크로 기록"버튼을 클릭합니다. 따라서 "매크로 기록"창이 나타납니다.
반면에 워크 시트 하단의 작은 버튼을 클릭하여 위의 6 단계를 대체 할 수도 있습니다.
- 이제 "매크로 기록"창에서 첫 번째 텍스트 상자에 이름을 입력합니다. 필요한 경우 바로 가기 키를 지정하십시오. 그런 다음 필요에 따라 설명을 추가하십시오.
- 다음으로 "확인"을 클릭합니다. 따라서 매크로는 사용자가 수행하는 모든 작업을 기록하기 시작합니다.
- 워크 시트에서 정렬해야하는 범위를 선택합니다.
- "홈"탭을 클릭합니다.
- 그런 다음 리본에서 "정렬 및 필터"버튼을 클릭합니다.
- 드롭 다운 목록에서 "사용자 지정 정렬"옵션을 선택합니다.
- "정렬"창에서 필요에 따라 기준을 설정합니다. 모든 동작이 매크로에 기록됩니다.
매크로를 기록 할 때 추가 단계를 수행하지 마십시오. 그렇지 않으면 해당 단계도 기록됩니다. 그리고 이것은 다음 부분에서 문제를 일으킬 것입니다.
- "정렬"창에서 설정을 완료 한 후 "확인"을 클릭하여 설정을 저장합니다.
- 이제 리본에서 "개발자"탭을 다시 클릭합니다.
- 그런 다음 "녹화 중지"버튼을 클릭합니다. 워크 시트가 매크로 기록 상태 일 때 버튼은 "기록 중지"로 변경됩니다.
워크 시트 하단에있는 단추를 클릭하여 매크로 기록을 중지 할 수도 있습니다. 따라서 녹음을 마쳤습니다. 모든 정렬 기준이 매크로 1에 저장되었습니다.
Excel VBA 매크로 사용
이 부분에서는 VBA 매크로를 사용하여 워크 시트에서 사용자 지정 정렬을 업데이트하는 방법을 보여줍니다. 또한이 부분에서 기록 된 매크로를 사용합니다.
- 리본에서 "개발자"탭을 클릭합니다.
- 그런 다음 도구 모음에서 "Visual Basic"단추를 클릭합니다. 대신 키보드의 "Alt + F11"버튼을 눌러 2 단계를 대체 할 수도 있습니다.
- Visual Basic 편집기에서 "VBAProject"영역의 시트를 두 번 클릭합니다. 이 시트에서 사용자 지정 정렬을 업데이트해야합니다. 그리고 실제 파일에서 해당 시트를 두 번 클릭해야합니다.
- 이제 영역에 다음 코드를 입력하십시오.
Private Sub Worksheet_Change(ByVal Target As Range) End Sub
- 그리고 위의 두 VBA 문장 사이에 다음 코드를 입력합니다.
Application.ScreenUpdating = False
If Not Intersect(Target, Range("A1:C13")) Is Nothing Then
End If
여기에 범위가 추정됩니다. 판매량에는 12 개월이 있으며 헤더의 첫 번째 행과 함께 "A1 : C13"범위를 입력합니다. 실제 워크 시트에 따라 코드에 범위를 입력 할 수도 있습니다.
- 이 단계에서는 편집기에서 모듈 1을 엽니 다. 이 모듈의 코드는 이전에 만든 사용자 지정 정렬 프로세스입니다. 매크로 기록 기능을 사용하면 많은 시간을 절약 할 수 있음을 알 수 있습니다.
- 이제이 모듈의 주요 부분을 복사합니다.
- 그런 다음 "VBAProject" 부분에서 대상 시트를 두 번 클릭합니다.
- 그런 다음 코드를 IF-END IF 코드에 붙여 넣으십시오.
- 그런 다음 필요에 따라 코드의 범위를 수정하십시오. 기록 된 매크로는 약간 복잡하고 중복됩니다. 필요에 따라 수정할 수도 있습니다. 따라서 전체 VBA 코드는 다음과 같습니다.
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Target, Range("A1:C13")) Is Nothing Then
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SortFields.Clear
.SortFields.Add Key:=Range("B2:B13"), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
.SortFields.Add Key:=Range("C2:C13"), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
End With
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A1:C13")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End If
End Sub
또 다른 WITH-END WITH를 코드에 추가합니다. 따라서 기록 결과보다 명확합니다. 다른 요구 사항이있는 경우 실제 필요에 따라 수정할 수도 있습니다. 코드를 수정할 때주의해야합니다. 그렇지 않으면 워크 시트에 잘못된 결과가 생성됩니다.
- 이제 편집기에서 VBA 코드를 완료했습니다. 워크 시트로 돌아와 결과를 테스트 할 수 있습니다. 다음 달과 해당 숫자를 범위에 추가하면 사용자 지정 정렬이 자동으로 새로 고쳐집니다.
따라서 대상 범위에 새 요소를 입력할 때마다 사용자 지정 정렬을 수동으로 업데이트할 필요가 없습니다. 다만, 이 통합 문서를 매크로가 포함된 Excel 파일로 저장해야 합니다. 그렇지 않으면 일반 파일로 저장할 경우 코드가 손실됩니다.
엑셀 부패 피해자 지원
Excel이 매우 강력하며 작업을 빠르고 쉽게 완료하는 데 도움이 될 수 있다는 것을 우리 모두 알고 있습니다. 그러나 Excel 응용 프로그램은 여전히 완벽하지 않습니다. 때로는 여러 가지 이유로 Excel이 손상됩니다. Excel이 손상되면이 응용 프로그램으로 작업을 완료 할 수 없습니다. 더 잘 작동하려면 가능한 한 빨리 수리해야합니다.
우리 회사는 수년 동안 복구 영역, 특히 Excel 복구 작업을 해왔습니다. 따라서 기술 직원에게 도움을 요청할 수 있습니다. 수년간의 경험을 통해 파일 손상 원인을 쉽게 파악할 수 있습니다. 그리고 당신을 더 잘 돕기 위해 Excel xlsx 파일 손상 복구, 타사 도구를 개발했습니다. 이 도구는 조작하기가 매우 쉽고 개인 정보 문제에 대해 걱정할 필요가 없습니다.
저자 소개 :
Anna Ma는 데이터 복구 전문가입니다. DataNumen, Inc.는 다음과 같은 데이터 복구 기술 분야의 세계적 리더입니다. Word docx 오류 복구 및 전망 수리 소프트웨어 제품. 자세한 내용은 WWW.datanumen.COM









