Note: The other languages of the website are Google-translated. Back to English

Excel에서 헤더를 클릭하여 열 데이터를 정렬하는 방법은 무엇입니까?

데이터 범위가 있다고 가정 해 보겠습니다. 이제 열 머리글을 클릭하여 데이터를 오름차순 또는 내림차순으로 정렬하여 다음 스크린 샷을 표시하고 싶습니다. Excel에서이 작업을 어떻게 해결할 수 있습니까?

클릭하여 문서 정렬 1

VBA 코드로 열 머리글을 클릭하여 데이터 정렬


화살표 블루 오른쪽 거품 VBA 코드로 열 머리글을 클릭하여 데이터 정렬

일반적으로 Excel에서는 정렬 기능을 적용하여 데이터를 빠르고 쉽게 정렬 할 수 있지만 셀을 클릭하는 것만으로 데이터를 정렬하려면 다음 VBA 코드가 도움이 될 수 있습니다.

1. 셀을 클릭하여 데이터를 정렬하려는 시트 탭을 마우스 오른쪽 단추로 클릭하고 코드보기 상황에 맞는 메뉴 및 열린 애플리케이션 용 Microsoft Visual Basic 창에서 다음 코드를 복사하여 빈 모듈에 붙여 넣습니다.

VBA 코드 : 셀 또는 열 머리글을 클릭하여 데이터 정렬 :

Public blnToggle As Boolean
Private Sub Worksheet_BeforeDoubleClick _
(ByVal Target As Range, Cancel As Boolean)
'Updateby Extendoffice
Dim LastColumn As Long, keyColumn As Long, LastRow As Long
Dim SortRange As Range
LastColumn = _
Cells.Find(What:="*", After:=Range("A1"), _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
keyColumn = Target.Column
If keyColumn > LastColumn Then Exit Sub
Application.ScreenUpdating = False
Cancel = True
LastRow = Cells(Rows.Count, keyColumn).End(xlUp).Row
Set SortRange = Target.CurrentRegion
blnToggle = Not blnToggle
If blnToggle = True Then
SortRange.Sort _
Key1:=Cells(2, keyColumn), Order1:=xlAscending, Header:=xlYes
Else
SortRange.Sort _
Key1:=Cells(2, keyColumn), Order1:=xlDescending, Header:=xlYes
End If
Set SortRange = Nothing
Application.ScreenUpdating = True
End Sub

클릭하여 문서 정렬 2

2. 그런 다음 코드 창을 저장하고 닫습니다. 이제 데이터 범위 내에서 셀 또는 열 머리글을 두 번 클릭하면 열이 오름차순으로 정렬되고 다시 두 번 클릭하면 열이 한 번에 내림차순으로 정렬됩니다.


더 많은 관련 기사 :

셀을 클릭하여 셀 값을 변경하는 방법은 무엇입니까?

Excel에서 셀 내용을 클릭하여 데이터를 필터링하는 방법은 무엇입니까?


최고의 사무 생산성 도구

Excel용 Kutools는 대부분의 문제를 해결하고 생산성을 80% 증가시킵니다.

  • 재사용: 빠르게 삽입 복잡한 공식, 차트 그리고 이전에 사용한 모든 것; 셀 암호화 암호로; 메일 링리스트 생성 이메일 보내기 ...
  • 슈퍼 포뮬러 바 (여러 줄의 텍스트와 수식을 쉽게 편집 할 수 있습니다.) 레이아웃 읽기 (많은 수의 셀을 쉽게 읽고 편집합니다.) 필터링 된 범위에 붙여 넣기...
  • 셀 / 행 / 열 병합 데이터 손실없이; 셀 내용 분할; 중복 행 / 열 결합... 중복 셀 방지; 범위 비교...
  • 중복 또는 고유 선택 행; 빈 행 선택 (모든 셀이 비어 있음); 슈퍼 찾기 및 퍼지 찾기 많은 통합 문서에서; 무작위 선택 ...
  • 정확한 사본 수식 참조를 변경하지 않고 여러 셀; 참조 자동 생성 여러 시트에; 글 머리 기호 삽입, 확인란 등 ...
  • 텍스트 추출, 텍스트 추가, 위치 별 제거, 공간 제거; 페이징 부분합을 만들고 인쇄합니다. 셀 내용과 주석 간 변환...
  • 슈퍼 필터 (다른 시트에 필터 구성표 저장 및 적용) 고급 정렬 월 / 주 / 일, 빈도 등 특수 필터 굵은 기울임 꼴로 ...
  • 통합 문서와 워크 시트 결합; 키 열을 기반으로 테이블 병합; 데이터를 여러 시트로 분할; xls, xlsx 및 PDF 일괄 변환...
  • 300개 이상의 강력한 기능. Office / Excel 2007-2021 및 365를 지원합니다. 모든 언어를 지원합니다. 기업 또는 조직에서 쉽게 배포할 수 있습니다. 전체 기능은 30일 무료 평가판입니다. 60일 환불 보장.
kte 탭 201905

Office Tab은 Office에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만듭니다.

  • Word, Excel, PowerPoint에서 탭 편집 및 읽기 사용, Publisher, Access, Visio 및 Project.
  • 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 만듭니다.
  • 생산성을 50% 높이고 매일 수백 번의 마우스 클릭을 줄입니다!
officetab 하단
코멘트 (6)
아직 평가가 없습니다. 가장 먼저 평가하세요!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
오름차순으로 작동, 하강에 명시된 대로 두 번 클릭하면 아무 작업도 수행되지 않음
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
작동하지 않고 아무 일도 일어나지 않고 vba에서 모듈을 만드는 방법을 알고 헤더를 두 번 클릭해도 저장되고 아무 것도 없습니다. 수정하세요.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
크래커잭은 할 수 없습니다 - 일하지 마세요
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, Rob, 위의 코드는 제 Excel에서 잘 작동합니다. 여기에 문제의 스크린샷을 줄 수 있습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요
der Code funktioniert bei mir. Allerdings würde ich gerne die oberen beiden Zeilen nicht mit sortieren, da diese die Überschriften sind.
Wie muss ich dann diesen Code ändern?

감사합니다!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕 친구,
필요한 VBA는 다음과 같습니다.

부울로 공개 blnToggle
비공개 하위 워크시트_BeforeDoubleClick _
(ByVal 대상을 범위로, 취소를 부울로)
'업데이트바이 Extendoffice
LastColumn을 길게, keyColumn을 길게, LastRow를 길게 희미하게
Dim SortRange를 범위로
마지막 열 = _
Cells.Find(What:="*", After:=Range("A1"), _
SearchOrder : = xlByColumns, SearchDirection : = xlPrevious) .Column
keyColumn = 대상.열
keyColumn > LastColumn이면 Sub 종료
Application.ScreenUpdating = False
취소 = True
LastRow = 셀(Rows.Count, keyColumn).End(xlUp).Row
오류에 대한 다음 재개
SortRange = Target.CurrentRegion 설정
오랫동안 어둡게
I = 2
SortRange 설정 = SortRange.Offset(i, 0)
SortRange 설정 = SortRange.Resize(SortRange.Rows.Count - i, SortRange.Columns.Count)
blnToggle = blnToggle 아님
blnToggle = True이면
SortRange.Sort _
Key1:=Cells(2, keyColumn), Order1:=xlAscending, 헤더:=xlNo
다른
SortRange.Sort _
Key1:=Cells(2, keyColumn), Order1:=xl내림차순, 헤더:=xlNo
END IF
SortRange = 없음 설정
Application.ScreenUpdating = True
최종 하위


3행의 헤더가 있는 경우 VBA에서 "i =2"를 "i =3"으로 변경하면 됩니다. 도움이 되기를 바랍니다. 좋은 하루 되세요.

감사합니다.
맨디
아직 코멘트가 없습니다
여러분의 의견을 남겨
게스트로 게시
×
이 게시물 평가 :
0   등장 인물
추천 위치

Follow Us

저작권 © 2009 - WWW.extendoffice.com. | 판권 소유. 에 의해 구동 ExtendOffice. | | 사이트 맵
Microsoft 및 Office 로고는 미국 및 / 또는 기타 국가에서 Microsoft Corporation의 상표 또는 등록 상표입니다.
Sectigo SSL로 보호