HeSanbi
Nam Nhân✨Hiếu Lễ Nghĩa Trí Tín✨
- Tham gia
- 24/2/13
- Bài viết
- 2,610
- Được thích
- 4,042
- Giới tính
- Nam
Hôm nay tôi lại chia sẻ cho các bạn các Hàm UDF được viết bằng VBA, nhằm mục đích để sắp xếp tự động thay vì phải điều chỉnh bằng tay ở chế độ sắp xếp.
Có phải các bạn rất khó khăn trong việc thực hiện sắp xếp với chế độ sort của Excel, hay bạn phải dùng tay thực hiện sắp xếp quá nhiều lần, đừng lo lắng, chính vì đó hôm nay tôi đã viết hàm sắp xếp tự động bổ trợ cho chế độ Sort này. Giúp các bạn đỡ nhọc hơn rất nhiều.
Khi các bạn điều chỉnh bằng tay chế độ sort quá phức tạp thì các bạn hãy yên tâm đã có hàm dưới đây giúp các bạn tự động hóa hoàn toàn mà không cần phải thực hiện thao tác tay lần nào nữa.
Ảnh minh họa cho chế độ Sort tay:
HÀM UDF S_SortA SẮP XẾP TỰ ĐỘNG
Mục tiêu đạt được:
Hướng dẫn sử dụng hàm:
=S_SortA(Cells,Lines,SortLeftToRight,MatchCase,Header,color,NaturalStarting,NaturalFactor,DefaultFontColor,DefaultBackColor,title)
*** Phần chưa phát triển:
Ví dụ viết hàm vào bảng tính:
Nếu Sắp xếp Custom Orders thì gõ Order ngăn cách bởi dấu bằng (=) vào trong dấu ngoặc kép:
=S_SortA(A2:Z10000, {-8, -3, -5, "-4=Mon,Tue,Wed,...."}, FALSE)
Chắc rằng các bạn chưa biết custom orders là gì?
Nó dùng để định nghĩa lại thứ tự sắp xếp.
Như Thứ trong tiếng anh, nếu các bạn không định nghĩa thứ tự các thứ thì nó sẽ sắp xếp sai.
Thứ trong tiếng Việt cũng vậy, ví dụ custom order: Hai,Ba,Tư,Năm,Sáu,Bảy,Chủ Nhật
Phương thức sort của excel không thể sắp xếp tiếng Việt chính vì vậy hãy sử dụng custom orders.
Hàm còn được chỉnh sửa và nâng cấp, nếu các bạn quan tâm hãy ấn theo dõi bài viết.
Các bạn có thể tham khảo thêm hàm sắp xếp mảng khác:
Các bạn muốn học VBA nhanh nhất có thể hãy tham khảo tool hỗ trợ lập trình VBA:
Sau khi tham khảo các bạn hãy để lại lời bình, có thể là “rất hữu ích” hoặc “không hữu ích”.
Có phải các bạn rất khó khăn trong việc thực hiện sắp xếp với chế độ sort của Excel, hay bạn phải dùng tay thực hiện sắp xếp quá nhiều lần, đừng lo lắng, chính vì đó hôm nay tôi đã viết hàm sắp xếp tự động bổ trợ cho chế độ Sort này. Giúp các bạn đỡ nhọc hơn rất nhiều.
Khi các bạn điều chỉnh bằng tay chế độ sort quá phức tạp thì các bạn hãy yên tâm đã có hàm dưới đây giúp các bạn tự động hóa hoàn toàn mà không cần phải thực hiện thao tác tay lần nào nữa.
Ảnh minh họa cho chế độ Sort tay:
HÀM UDF S_SortA SẮP XẾP TỰ ĐỘNG
Mục tiêu đạt được:
- Tự động hoàn toàn. Không phải thực hiện bằng tay. Gõ một hàm duy nhất.
- Tự động loại bỏ vùng trống không cần sắp xếp khi chọn mảng.
- Dùng hàm nên cài đặt thông số sắp xếp rất nhanh.
- Code đã được tối ưu, nên không chiếm dụng tài nguyên máy tính.
Hướng dẫn sử dụng hàm:
=S_SortA(Cells,Lines,SortLeftToRight,MatchCase,Header,color,NaturalStarting,NaturalFactor,DefaultFontColor,DefaultBackColor,title)
Vị trí | Tham số | Kiểu | Chức năng |
1 | Cells | Vùng ô | Nhận vùng cần sắp xếp |
2 | Lines | Số cột hoặc Mảng các cột | Nếu nhập số âm thì sắp xếp giảm dần, bằng 0 sx tất cả |
3 | SortLeftToRight | Có/Không | Sắp xếp từ trái sang phải |
4 | MatchCase | Có/Không | Sắp xếp có phân biệt hoa thường |
5 | Header | Có/Không | Vùng có đầu đề |
6 | color | Số | Màu, Nếu đặt màu nhỏ hơn 0 thì không tô màu |
7 | NaturalStarting | Số | Vị trí bắt đầu phân màu |
8 | NaturalFactor | Số | Tỉ lệ phân màu |
9 | DefaultFontColor | Số | Màu phông chữ mặc định |
10 | DefaultBackColor | Số | Màu nền mặc đinh |
*** Phần chưa phát triển:
- Hiện tại phần làm nổi bật phần đã Sắp xếp bằng cách tô màu chưa được phát triển, vì vậy tham số thứ 6 đến 10 không cần nhập.
- Sắp xếp màu phông, ....
Ví dụ viết hàm vào bảng tính:
1. Sắp xếp mảng A2:Z10000 với các phân tầng là tất cả cột, lớn dần
=S_SortA(A2:Z10000, 0, FALSE)
2. Sắp xếp mảng A2:Z10000 với các phân tầng là tất cả cột, từ sau ra trước
=S_SortA(A2:Z10000, -99999, FALSE)
3. Sắp xếp mảng A2:Z10000 với cột thứ 3, lớn dần thì để 3, nhỏ dần thì để -3
=S_SortA(A2:Z10000, 3, FALSE)
4. Sắp xếp mảng A2:Z10000 với các phân tầng là 1, 3, 5, 7 (thứ tự cột), lớn dần
=S_SortA(A2:Z10000, {1, 3, 5, 7}, FALSE)
5. Sắp xếp mảng A2:Z10000 với các phân tầng là 8, 3, 5, 4 (thứ tự cột), lớn dần
=S_SortA(A2:Z10000, {8, 3, 5, 4}, FALSE)
6. Sắp xếp mảng A2:Z10000 với các phân tầng là -8, -3, -5, -4 (thứ tự cột), giảm dần
=S_SortA(A2:Z10000, {-8, -3, -5, -4}, FALSE)
Nếu Sắp xếp Custom Orders thì gõ Order ngăn cách bởi dấu bằng (=) vào trong dấu ngoặc kép:
=S_SortA(A2:Z10000, {-8, -3, -5, "-4=Mon,Tue,Wed,...."}, FALSE)
Chắc rằng các bạn chưa biết custom orders là gì?
Nó dùng để định nghĩa lại thứ tự sắp xếp.
Như Thứ trong tiếng anh, nếu các bạn không định nghĩa thứ tự các thứ thì nó sẽ sắp xếp sai.
Thứ trong tiếng Việt cũng vậy, ví dụ custom order: Hai,Ba,Tư,Năm,Sáu,Bảy,Chủ Nhật
Phương thức sort của excel không thể sắp xếp tiếng Việt chính vì vậy hãy sử dụng custom orders.
Hàm còn được chỉnh sửa và nâng cấp, nếu các bạn quan tâm hãy ấn theo dõi bài viết.
Các bạn có thể tham khảo thêm hàm sắp xếp mảng khác:
Hàm sắp xếp mảng ngang dọc với Thuật toán QuickSort (sắp xếp Tiếng Việt) cho Excel
Hôm nay tôi lại chia sẻ cho các bạn các Hàm UDF được viết bằng VBA, nhằm mục đích để sắp xếp mảng một cách tối ưu nhất. HÀM UDF SẮP XẾP PHÂN TẦNG (ĐA HÀNG CỘT) Hàm VSORT và Thủ tục VSORTING - Sắp xếp dọc Hàm HSORT và Thủ tục HSORTING - Sắp xếp ngang Mục tiêu đạt được: Sắp xếp cả mảng ngang...
giaiphapexcel.com
Các bạn muốn học VBA nhanh nhất có thể hãy tham khảo tool hỗ trợ lập trình VBA:
VBA_FastCode v2.22 - Công cụ học và viết mã VBA một cách nhanh nhất (*27/10/2023)
***** CẬP NHẬT MỚI v2.2 ***** -------------------------------------------------------------------------- Add-in được chia sẻ dưới đây, đó là những gì tôi hiểu biết về VBA và đã viết ra nó. Một Add-in Tools chỉnh sửa code VBA rất đơn giản nhưng có thể giúp các bạn học VBA và viết code nhanh...
giaiphapexcel.com
Sau khi tham khảo các bạn hãy để lại lời bình, có thể là “rất hữu ích” hoặc “không hữu ích”.
File đính kèm
Lần chỉnh sửa cuối: