phuongnam366377
Thành viên thường trực




- Tham gia
- 25/10/19
- Bài viết
- 216
- Được thích
- 224
Dưới đây là bài viết giới thiệu thư viện VariantEnum COM dành cho cộng đồng Giải Pháp Excel, nơi tập trung đông đảo người dùng VBA.
Ngôn ngữ: C++ (COM)
Dành cho: VBA trong Excel, Word, Access, Outlook...
https://github.com/KieuManh366377/VariantEnum-COM-Library-for-VBA
Hy vọng thư viện này sẽ giúp cộng đồng VBA tại GPE tiết kiệm thời gian và tăng hiệu quả xử lý chuỗi!
---
Giao diện sử dụng trong VBE (Visual Basic Editor) của Excel sẽ rất quen thuộc với người dùng VBA.

Đây là thư viện COM cuối cùng mình viết cho VBA, chia sẻ lại cho cộng đồng trước khi mình chuyển sang nghiên cứu hệ thống Web Server.
Ai cần thì dùng, ai thích thì chơi – chúc mọi người vui vẻ!
[Tặng] VariantEnum – thư viện COM cho VBA trước khi mình rút lui
Thong thả cập nhật chi tiết sử dụng sau lên Github
Giới thiệu thư viện VariantEnum COM cho VBA
Tác giả: Kiều MạnhNgôn ngữ: C++ (COM)
Dành cho: VBA trong Excel, Word, Access, Outlook...
Mục tiêu
Thư viện VariantEnum COM được xây dựng nhằm hỗ trợ người dùng VBA xử lý danh sách chuỗi một cách linh hoạt và hiệu quả. Thay vì phải viết lại các hàm sắp xếp phức tạp trong VBA, bạn chỉ cần gọi các phương thức có sẵn từ đối tượngEnumProvider
.Tính năng nổi bật
Hàm COM | Chức năng |
---|---|
SortByLengthAsc | Sắp xếp chuỗi từ ngắn đến dài |
SortDescIgnoreCase | Sắp xếp giảm không phân biệt hoa/thường |
SortLenAlphaCIRevStable | Sắp xếp theo độ dài, chữ cái giảm, giữ thứ tự ban đầu |
SortLenMixedAlpha | Chuỗi không phải số trước, sau đó theo chữ cái |
SortLenNumAsc | Sắp xếp chuỗi số theo giá trị tăng dần |
Ví dụ sử dụng trong VBA
Dưới đây là đoạn mã kiểm thử thư viện:
Mã:
Sub TestSortLenFinal()
Dim ep As VariantEnum.EnumProvider
Set ep = New VariantEnum.EnumProvider
' Them du lieu mau
ep.Add "kiwi"
ep.Add "Apple"
ep.Add "banana"
ep.Add "123"
ep.Add "CHERRY"
ep.Add "456"
ep.Add "melon"
ep.Add "789"
ep.Add "apple" ' trung noi dung de kiem thu stable
Debug.Print "=== Original List ==="
PrintAllItems ep
Debug.Print "=== SortLenAlphaCIRevStable ==="
ep.SortLenAlphaCIRevStable
PrintAllItems ep
Debug.Print "=== SortLenMixedAlpha ==="
ep.SortLenMixedAlpha
PrintAllItems ep
Debug.Print "=== SortLenNumAsc ==="
ep.SortLenNumAsc
PrintAllItems ep
End Sub
Sub PrintAllItems(ep As VariantEnum.EnumProvider)
Dim i As Long
For i = 1 To ep.Count
Debug.Print "Item " & i & ": " & ep.Item(i)
Next
End Sub
Cài đặt
- Đăng ký DLL bằng
regsvr32 VariantEnum.dll
- Vào VBA → Tools > References → chọn
VariantEnum COM Library
Tài liệu & COM DLL
hướng dẫn chi tiết đã được chia sẻ tại GitHub:https://github.com/KieuManh366377/VariantEnum-COM-Library-for-VBA
Mời đóng góp
Nếu bạn có ý tưởng mở rộng hoặc phát hiện lỗi, hãy mở issue hoặc pull request trên GitHub. Thư viện này hoàn toàn miễn phí theo giấy phép MIT.Hy vọng thư viện này sẽ giúp cộng đồng VBA tại GPE tiết kiệm thời gian và tăng hiệu quả xử lý chuỗi!
---
Giao diện sử dụng trong VBE (Visual Basic Editor) của Excel sẽ rất quen thuộc với người dùng VBA.

Đây là thư viện COM cuối cùng mình viết cho VBA, chia sẻ lại cho cộng đồng trước khi mình chuyển sang nghiên cứu hệ thống Web Server.
Ai cần thì dùng, ai thích thì chơi – chúc mọi người vui vẻ!
[Tặng] VariantEnum – thư viện COM cho VBA trước khi mình rút lui
Thong thả cập nhật chi tiết sử dụng sau lên Github
Lần chỉnh sửa cuối: