데이터가있는 워크 시트를 채우면 B
열을 기준으로 오름차순으로 데이터를 정렬합니다. 첫 번째 행은 레코드 헤더입니다. B
열은 REPTNO
열입니다.VBA는 Excel 행을 오름차순으로 정렬하지만 첫 번째 행은 제외합니까?
예제 데이터의 경우 B1은 REPTNO
이고 B2-B17은 SR0238-SR0253
입니다. 모든 것이 좋았지 만 B2-B17을 지우고 테스트를 위해 사용자에게 제출할 때 이상한 일이 일어났습니다.
사용자가 의 값이 JF0007
인 행 2에 레코드를 입력했습니다. 내 코드가 처리 될 때 첫 번째 행과 두 번째 행이 뒤집혀서 (J가 R 앞에옵니다) "헤더"열이 첫 번째 행에 남기지 않고 두 번째 행에있게됩니다.
첫 번째 행을 제외하고 두 번째 행만 정렬하려면 무엇을 변경해야합니까? 내 행 1은 .txt 파일로 출력 할 때 행 1로 남아 있어야합니다.
이 상황에서 rowCnt
의 값은 2 (헤더 행 + 입력 1 개 데이터 열이다
EDIT2 :. 그것은 첫 번째 행을 교환하는 것으로 보인다
' Sort by REPTNO field
Dim xlSort As XlSortOrder
xlSort = xlAscending
If rowCnt > 2 Then
With Worksheets("Export")
.range("B2:B" & rowCnt).Sort Key1:=.range("B2"), Order1:=xlSort, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End With
End If
(행 2). 행 3에 두 번째 데이터 레코드를 입력하면 REPTNO = JF0005
, REPTNO
값은 B1로 남았습니다. 그러나이 코드는 생각했던 것처럼 작동하지 않습니다.
REPTNO
값을 기준으로 모든 행 (행 2 - 많은 행이 있음)을 정렬해야합니다. 안타깝게도 현재 코드는 REPTNO
열 또는 B
의 데이터 만 주문합니다.
'.range ("B2 : B"& rowCnt) .Sort'는 열 B 만 정렬합니다. 포함해야하는 다른 열이 있으면 그 범위를 확장해야합니다. 예 :'.range ("A2 : J"& rowCnt) .Sort' –
데이터에 헤더 행이 있지만'Sort '에 대한 호출에서 당신은'Header : = xlNo' - try'Header : = xlYes' – barrowc