Tìm các giá trị duy nhất bằng VBA trong Microsoft Excel
Trong bài viết này, chúng tôi sẽ tạo hàm tùy chỉnh để tìm các giá trị duy nhất từ phạm vi đã xác định.
Dữ liệu thô cho ví dụ này bao gồm các mục nhập trùng lặp của tên quốc gia trong phạm vi A8: A21.
Giải thích logic
Chúng tôi đã tạo một hàm tùy chỉnh “UniqueItem” để trích xuất các giá trị duy nhất từ phạm vi. Hàm này nhận hai tham số làm đầu vào.
Tham số đầu tiên là phạm vi bao gồm dữ liệu trùng lặp và tham số thứ hai xác định số chỉ mục của một giá trị duy nhất trong tập hợp duy nhất.
Hàm này trả về giá trị duy nhất từ phạm vi dựa trên số chỉ mục. Tham số thứ hai là tham số tùy chọn, nếu tham số thứ hai không được chỉ định thì hàm trả về số giá trị duy nhất trong phạm vi đã xác định.
Nếu giá trị được xác định cho tham số thứ hai lớn hơn số giá trị duy nhất trong phạm vi thì giá trị duy nhất cuối cùng được hàm trả về.
Giải thích mã
Khi bị lỗi Tiếp tục lại cho mỗi CellValue trong InputRange CUnique.Add CellValue.Value, CStr (CellValue.Value)
[_GoBack] # Tiếp theo Lỗi GoTo 0 Mã trên được sử dụng để tạo đối tượng tập hợp sẽ chứa một giá trị duy nhất từ phạm vi đã xác định. Câu lệnh “On Error” được sử dụng để xử lý lỗi, vì khi mã cố gắng đưa các giá trị trùng lặp vào bộ sưu tập, bộ sưu tập sẽ tạo ra lỗi.
Vui lòng theo dõi bên dưới để biết mã
Option Explicit Function UniqueItem(InputRange As Range, Optional ItemNo As Integer = 0) As Variant Dim CellValue As Range Dim CUnique As New Collection Dim UCount As Integer On Error Resume Next 'Adding unique items to collection from defined range For Each CellValue In InputRange CUnique.Add CellValue.Value, CStr(CellValue.Value) Next On Error GoTo 0 'Getting count of unique item in the collection UCount = CUnique.Count If ItemNo = 0 Then 'Returning count of unique item UniqueItem = UCount ElseIf ItemNo <= UCount Then 'Returning unique value based on item number UniqueItem = CUnique(ItemNo) Else 'Returning last unique value UniqueItem = CUnique(UCount) End If End Function
Nếu bạn thích blog này, hãy chia sẻ nó với bạn bè của bạn trên Facebook và Facebook.
Chúng tôi rất muốn nghe ý kiến từ bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi [email protected]