Sắp xếp theo thứ tự tăng dần dựa vào ký tự từ trái sang phải

Liên hệ QC

vanlinh_2904

Thành viên hoạt động
Tham gia
20/10/12
Bài viết
105
Được thích
3
Nhờ các Anh/Chị giúp mình VBA để sắp xếp theo thứ tự tăng dần dựa vào ký tự đầu từ trái sang phải như file đính kèm. cảm ơn các anh/chị.
 

File đính kèm

  • Sort TT.xlsx
    8.9 KB · Đọc: 20
Nhờ các Anh/Chị giúp mình VBA để sắp xếp theo thứ tự tăng dần dựa vào ký tự đầu từ trái sang phải như file đính kèm. cảm ơn các anh/chị.
Phải thế này không?
Mã:
Sub Sap_Xep()
  With Sheet1.Range("A3:B23")
    .Sort .Cells(3, 1), 1, Header:=xlGuess
  End With
End Sub
 
Upvote 0
Chạy thấy đúng với định dạng là kiểu text, nếu số liệu cột A vừa kiểu số và text sẽ bị sai, bạn xem giúp mình nhé
Tôi thấy nó chạy đúng với kết quả mong muốn rồi mà.
Nếu bạn thay thay dữ liệu đầu vào, thì nhập tay lại kết quả mong muốn rồi gửi lên xem thế nào.
Chú ý: phải lường trước các trường hợp rồi gửi yêu cầu một lượt,
Tránh tình trạng hỗ trợ xong lại "đẻ" ra thêm các yêu cầu khác.
 
Upvote 0
Tôi thấy nó chạy đúng với kết quả mong muốn rồi mà.
Nếu bạn thay thay dữ liệu đầu vào, thì nhập tay lại kết quả mong muốn rồi gửi lên xem thế nào.
Chú ý: phải lường trước các trường hợp rồi gửi yêu cầu một lượt,
Tránh tình trạng hỗ trợ xong lại "đẻ" ra thêm các yêu cầu khác.
Đây bạn, nếu cột A dạng số thì kết quả bị sai. Bạn xem lại giúp mình
 

File đính kèm

  • Sort TT.xlsx
    9.9 KB · Đọc: 14
Upvote 0
Đây bạn, nếu cột A dạng số thì kết quả bị sai. Bạn xem lại giúp mình
Theo dữ liệu bạn đưa cùng kết quả mong muốn thì chỉ cần đổi 1-->2 như ở code dưới.
Mã:
Sub Sap_Xep()
  With Sheet1.Range("A3:B23")
    .Sort .Cells(3, 2), 1, Header:=xlGuess
  End With
End Sub
 
Upvote 0
Theo dữ liệu bạn đưa cùng kết quả mong muốn thì chỉ cần đổi 1-->2 như ở code dưới.
Mã:
Sub Sap_Xep()
  With Sheet1.Range("A3:B23")
    .Sort .Cells(3, 2), 1, Header:=xlGuess
  End With
End Sub
Cột 2 có thể là chuỗi bất kỳ. Mặc dù tình cờ nó khớp với điều kiện lọc, nhưng đề bài là sort cột 1 mà bạn lại sort cột 2?
 
Upvote 0
Bạn thử code này
PHP:
Option Explicit
Sub Sap_Xep()
Dim lr&, i&, j&, rng, max1, max2, max3
lr = Cells(Rows.Count, "A").End(xlUp).Row
rng = Range("A4:C" & lr).Value
For i = 1 To lr - 3
    rng(i, 3) = Left(rng(i, 1) & "0000000000", 10)
Next
For i = 1 To lr - 4
    For j = i + 1 To lr - 3
        If rng(i, 3) > rng(j, 3) Then
            max3 = rng(j, 3): max2 = rng(j, 2): max1 = rng(j, 1)
            rng(j, 1) = rng(i, 1): rng(j, 2) = rng(i, 2): rng(j, 3) = rng(i, 3)
            rng(i, 3) = max3: rng(i, 2) = max2: rng(i, 1) = max1
        End If
    Next
Next
Range("A4:B100000").ClearContents
Range("A4").Resize(UBound(rng), 2).Value = rng
End Sub
 
Upvote 0
Mong muốn của bạn tương tự hàm và thủ tục được viết ở đây

 
Upvote 0
Web KT

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

Back
Top Bottom