Anh dùng 2 vòng lập quét qua các cell là có thể sort thoài mái rồiGiả sử có cột số bất kỳ A2:A20.Sử dung VBA và không áp dụng chức năng Sort của Excel
làm sao có thể sắp xếp theo thứ tự tăng dần
Nhờ anh em chỉ giúp, xin cảm ơn
Giải pháp:Giả sử có cột số bất kỳ A2:A20.Sử dung VBA và không áp dụng chức năng Sort của Excel
làm sao có thể sắp xếp theo thứ tự tăng dần
Nhờ anh em chỉ giúp, xin cảm ơn
Sub SortMatritABC()
Dim arRng, temp, iJ As Integer, iZ As Integer
If Selection.Columns.Count > 1 Then
MsgBox "Ban chon " & Selection.Columns.Count & " cot !"
Exit Sub
End If
rd = Selection.Row
rc = rd + Selection.Rows.Count - 1
c = Selection.Column
arRng = Selection
For iZ = 1 To UBound(arRng)
For iJ = 1 To UBound(arRng) - 1
temp = arRng(iJ, 1)
If temp > arRng(iJ + 1, 1) Then
arRng(iJ, 1) = arRng(iJ + 1, 1)
arRng(iJ + 1, 1) = temp
End If
Next
Next
iZ = 1
For iJ = rd To rc
Cells(iJ, c) = arRng(iZ, 1)
iZ = iZ + 1
Next iJ
End Sub
Sub SortMatritCBA()
Dim arRng, temp, iJ As Integer, iZ As Integer
If Selection.Columns.Count > 1 Then
MsgBox "Ban chon " & Selection.Columns.Count & " cot !"
Exit Sub
End If
rd = Selection.Row
rc = rd + Selection.Rows.Count - 1
c = Selection.Column
arRng = Selection
For iZ = 1 To UBound(arRng)
For iJ = 1 To UBound(arRng) - 1
temp = arRng(iJ, 1)
If temp < arRng(iJ + 1, 1) Then
arRng(iJ, 1) = arRng(iJ + 1, 1)
arRng(iJ + 1, 1) = temp
End If
Next
Next
iZ = 1
For iJ = rd To rc
Cells(iJ, c) = arRng(iZ, 1)
iZ = iZ + 1
Next iJ
End Sub
Sort bằng mảng không dùng chức năng sort của Excel 1 cột đã giải quyết xong.Giả sử có cột số bất kỳ A2:A20.Sử dung VBA và không áp dụng chức năng Sort của Excel
làm sao có thể sắp xếp theo thứ tự tăng dần
Nhờ anh em chỉ giúp, xin cảm ơn
Em nghĩ anh lên Google, search từ khóa VBA Sort multiDimensional Array cũng là 1 cách tham khảoSort bằng mảng không dùng chức năng sort của Excel 1 cột đã giải quyết xong.
Từ bài này, có thể mở rộng bài toán sort mảng như sau :
- Vùng chọn có n cột.
- Cột sort là cột m (1 <= m <= n)
Giải được bài toán này, sort mảng sẽ được ứng dụng rộng hơn vì khi sort, thường sort nhiều cột.
Mời các bạn cùng giải bài toán này.