Sort theo cột (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Mr Okebab

Ngon Ngất Ngây
Thành viên đã mất
Tham gia
6/8/06
Bài viết
3,260
Được thích
3,790
Sort trong excel chỉ sort theo hàng. Vậy có công cụ nào trong excel sort dữ liệu theo cột không nhỉ ? Các điều kiện sort nằm trên cùng 1 hàng. Các cao thủ giúp với.
 
Xoay thế nào bác nhỉ ? Có thể nói rõ hơn không ? Hay là biền cột thành hàng, hàng thành cột rồi sau đó sort rrồi lại biến hàng thành cột ?
 
Thử như thế nào đây? Bác phải nói rõ hơn xíu nữa. Em "hơi bị ngu" mà.
 
Chưa xem file của bạn nhưng mình đã tìm ra rồi. Thì ra excel có hai chức năng sort theo cột và sort theo hàng mà mình không để ý. Mình sẽ tham khảo file của bạn.
Cảm ơn thật nhiều!!!!

VBA như sau
Sort theo hàng : (Data->Sort)

Selection.Sort Key1:=Range("B3"), Order1:=xlAscending, Key2:=Range("C3") _
, Order2:=xlAscending, Key3:=Range("D3"), Order3:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
xlSortNormal

Sort theo cột: (Data->Sort->Option->Left to Right)

Selection.Sort Key1:=Range("B3"), Order1:=xlAscending, Key2:=Range("B4") _
, Order2:=xlAscending, Key3:=Range("B5"), Order3:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
xlSortNormal
 
PHP:
Sub sortbyCol()
[A1:I1] = Array("8", "4", "1", "3", "2a", "2b", "6", "5", "7")
With [A1].CurrentRegion
.Sort [A1], xlAscending, , , , , , xlNo, , , xlSortColumns
End With
End Sub

Tôi thử gán mảng trên vào [A1:I1] và thử sort theo cột (nghĩa là sắp xếp cột A --> I lại theo số thứ tự đánh trên mảng nhưng bị lỗi

Các bác xem và chỉ giúp nhé
 
Tôi record và sửa lại code như sau thì chạy ok, nhưng thấy dài quá
PHP:
Sub sortbyCol()
[A1:I1] = Array("8", "4", "1", "3", "2a", "2b", "6", "5", "7")

    ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
    ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range( _
        "A1:I1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortTextAsNumbers
    With ActiveWorkbook.ActiveSheet.Sort
        .SetRange Range("A1:I25")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlLeftToRight
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
 
PHP:
Sub sortbyCol()
[A1:I1] = Array("8", "4", "1", "3", "2a", "2b", "6", "5", "7")
With [A1].CurrentRegion
.Sort [A1], xlAscending, , , , , , xlNo, , , xlSortColumns
End With
End Sub

Tôi thử gán mảng trên vào [A1:I1] và thử sort theo cột (nghĩa là sắp xếp cột A --> I lại theo số thứ tự đánh trên mảng nhưng bị lỗi

Các bác xem và chỉ giúp nhé

Vầy thử xem:
PHP:
Sub sortbyCol()
  With Range("A1:I1")
    .Value = Array("8", "4", "1", "3", "2a", "2b", "6", "5", "7")
    .Sort .Rows(1), 1, , , , , , , xlNo, , , xlLeftToRight
  End With
End Sub
 
Vầy thử xem:
PHP:
Sub sortbyCol()
  With Range("A1:I1")
    .Value = Array("8", "4", "1", "3", "2a", "2b", "6", "5", "7")
    .Sort .Rows(1), 1, , , , , , , xlNo, , , xlLeftToRight
  End With
End Sub

Tức là phải thay [A1] bằng
PHP:
Range("A1:I1").rows(1)

Code ngắn nhỉ bác NDU? nhưng hơi lạ code sort theo column lại thêm cái ông .rows(1)...^_ (thay vì [A1]...chắc chỉ dành cho sort by rows
kì ta?
Cám ơn NDU nhiều
 
Chỉnh sửa lần cuối bởi điều hành viên:
Tức là phải thay [A1] bằng
PHP:
Range("A1:I1").rows(1)

Code ngắn nhỉ bác NDU? nhưng hơi lạ code sort theo column lại thêm cái ông .rows(1)...^_ (thay vì [A1]...chắc chỉ dành cho sort by rows
kì ta?
Cám ơn NDU nhiều
Không hẳn vậy!
Bạn cứ thay .ROWS(1) thành.. cái gì khác rồi thí nghiệm xem (chẳng hạn thay thành .Cells(1,1) cũng được)
 
Web KT

Bài viết mới nhất

Back
Top Bottom