查找范围对象的方法
在本文中,我们将使用Range对象的find方法突出显示包含与搜索词相似的值的单元格。
此示例的原始数据包括公司名称,员工ID和员工名称。我们有来自不同公司的原始数据。
在此示例中,我们要查找并突出显示与单元格I8中的特定已定义公司名称匹配的单元格。
要突出显示具有特定公司名称的单元格,请在单元格I8中输入公司名称,然后单击“提交”按钮。为“提交”按钮分配了“ HighlightMatchingResult”宏。
“ HighlightMatchingResult”宏将以黄色突出显示包含匹配的公司名称的单元格。
逻辑解释
在此示例中,我们创建了一个自定义函数“ FindRange”和一个宏“ HighlightMatchingResult”。
自定义函数“ FindRange”将创建一个范围,其中所有单元格的值都与搜索到的公司名称相似。
“ HighlightMatchingResult”宏将调用自定义函数,并以黄色突出显示自定义函数返回的范围。
代码说明
SearchRange.Find(What:= FindItem)
上面的代码用于查找包含类似于FindItem的值的单元格。
联合(FindRange,MatchingRange)
上面的代码用于将两个范围合并为一个范围。
SearchRange.FindNext(MatchingRange)
上面的代码用于查找包含类似于FindItem的值的下一个单元格。
请遵循以下代码
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
如果您喜欢此博客,请在Facebook和Facebook上与您的朋友分享。
我们希望收到您的来信,请让我们知道如何改善我们的工作并为您做得更好。写信给我们[email protected]