Tìm phương thức của đối tượng Range
Trong bài này, chúng ta sẽ sử dụng phương thức find của đối tượng Range để đánh dấu ô chứa giá trị tương tự như các từ tìm kiếm.
Dữ liệu thô cho ví dụ này bao gồm tên công ty, id nhân viên và tên nhân viên. Chúng tôi có dữ liệu thô từ các công ty khác nhau.
Trong ví dụ này, chúng tôi muốn tìm và đánh dấu ô phù hợp với tên công ty được xác định cụ thể trong ô I8.
Để đánh dấu các ô có tên công ty cụ thể, hãy nhập tên công ty vào ô I8 và nhấp vào nút “Gửi”. Nút “Gửi” được chỉ định macro “HighlightMatchingResult”.
Macro “HighlightMatchingResult” sẽ đánh dấu ô có chứa tên công ty phù hợp với màu Vàng.
Giải thích logic
Trong ví dụ này, chúng tôi đã tạo một hàm tùy chỉnh “FindRange” và một macro “HighlightMatchingResult”.
Hàm tùy chỉnh “FindRange” sẽ tạo một phạm vi với tất cả các ô có chứa giá trị tương tự như tên công ty được tìm kiếm.
Macro “HighlightMatchingResult” sẽ gọi hàm tùy chỉnh và đánh dấu phạm vi được trả về bởi hàm tùy chỉnh bằng màu Vàng.
Giải thích mã
SearchRange.Find (Cái gì: = FindItem)
Đoạn mã trên được sử dụng để tìm ô chứa giá trị tương tự như FindItem.
Union (FindRange, MatchingRange)
Mã trên được sử dụng để kết hợp hai phạm vi thành một phạm vi duy nhất.
SearchRange.FindNext (MatchingRange)
Đoạn mã trên được sử dụng để tìm ô tiếp theo chứa giá trị tương tự như FindItem.
Vui lòng theo dõi bên dưới để biết mã
Option Explicit Function FindRange(FindItem As Variant, SearchRange As Range) As Range 'Declaring variables Dim MatchingRange As Range Dim FirstAddress As String With SearchRange 'Finding the range whose value match with FindItem Set MatchingRange = .Find(What:=FindItem) 'Checking whether any match exist If Not MatchingRange Is Nothing Then Set FindRange = MatchingRange 'Getting the address of first matching range FirstAddress = MatchingRange.Address Do 'Union of all the ranges whose value match with FindItem Set FindRange = Union(FindRange, MatchingRange) 'Finding the next range whose value match with FindItem Set MatchingRange = .FindNext(MatchingRange) Loop While MatchingRange.Address <> FirstAddress End If End With End Function Sub HighlightMatchingResult() 'Declaring variables Dim MappingRange As Range Dim UserInput As String 'Getting value input by user from cell I8 UserInput = Range("I8").Value 'Calling FindRange custom function Set MappingRange = FindRange(UserInput, ActiveSheet.Columns("A")) 'Highlighting the mapped range with Yellow color MappingRange.Interior.Color = RGB(255, 255, 0) End Sub
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]