반응형
특정 열별 VBA Excel 정렬 범위
임의의 수의 행을 포함할 수 있는 테이블이 있습니다.
말씀드렸듯이 1행 또는 rows행 중 하나를 포함할 수 있습니다.
범위를 정렬하고 싶다A3:D∞
B열에 있는 날짜 셀을 기준으로 합니다.
어떻게 해야 하죠?
문제는 어떻게 골라야 할지 모르겠다는 것이다.A3
마지막 줄까지.
마지막 줄에 루프하는 것은 올바른 방법이 아니라고 생각합니다.
지금까지 알아낸 건 맞는 것 같은데 범위가 하드코드 되어 있어요
레인지의 하드코딩을 해제하려면 어떻게 해야 합니까?
Range("A3:D8").Sort key1:=Range("B3:B8"), _
order1:=xlAscending, Header:=xlNo
다음 코드를 사용해 보십시오.
Dim lastrow As Long
lastrow = Cells(Rows.Count, 2).End(xlUp).Row
Range("A3:D" & lastrow).Sort key1:=Range("B3:B" & lastrow), _
order1:=xlAscending, Header:=xlNo
또는 다음과 같습니다.
Range("A2", Range("D" & Rows.Count).End(xlUp).Address).Sort Key1:=[b3], _
Order1:=xlAscending, Header:=xlYes
임의의 범위를 매우 역동적으로 정렬하려면SortRange
그리고.GetCurrentRegionStartingGivenCell
다음과 같이 Xatocode에서 기능합니다.
' First you may define a worksheet level named range in cell "A2" and name it as rngData
Sub SortExample()
Dim rngData As Range ' Range to sort
Set rngData = GetCurrentRegionStartingGivenCell(shtData.Range("rngData"))
Call SortRange(rngData, True, 2, xlAscending, 3, xlDescending)
End Sub
기사 전문은 이쪽에서 보실 수 있습니다.
범위와 키의 시작 셀이 정적일 경우 솔루션은 매우 단순할 수 있습니다.
Range("A3").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Sort key1:=Range("B3", Range("B3").End(xlDown)), _
order1:=xlAscending, Header:=xlNo
언급URL : https://stackoverflow.com/questions/21451458/vba-excel-sort-range-by-specific-column
반응형
'programing' 카테고리의 다른 글
node.js를 Windows에서 완전히 삭제하는 방법 (0) | 2023.04.09 |
---|---|
Swift 컴파일 시간이 왜 이렇게 느리죠? (0) | 2023.04.09 |
어떤 Git 브런치가 어떤 리모트/업스트림 브런치를 추적하고 있는지 어떻게 알 수 있습니까? (0) | 2023.04.09 |
Windows에서 구성 파일 /usr/local/ssl/openssl.cnf를 열 수 없습니다. (0) | 2023.04.09 |
Dispatcher를 사용하여 WPF 컨트롤을 비메인 스레드에서 변경합니다.호출하다 (0) | 2023.04.09 |