Excel 使用“查找”进行搜索前修剪搜索参数
在搜索之前,是否有方法使用Excel 使用“查找”进行搜索前修剪搜索参数,excel,vba,find,Excel,Vba,Find,在搜索之前,是否有方法使用Find修剪搜索参数 我有一个Excel文件,我想在其中搜索,以找到包含特定单词的单元格;每个单元格只包含一个单词。Find函数不区分大小写,在大多数情况下都能完美工作。我发现的唯一(可能)缺陷是单元格必须只包含单词,而不包含前导和尾随空格 例如: 如果我想使用Find功能搜索单词acoustic Dim rng as Range rng = ActiveSheet.Range("A1:K100") Set foundItem = rng.Find("acoustic"
Find
修剪搜索参数
我有一个Excel文件,我想在其中搜索,以找到包含特定单词的单元格;每个单元格只包含一个单词。Find
函数不区分大小写,在大多数情况下都能完美工作。我发现的唯一(可能)缺陷是单元格必须只包含单词,而不包含前导和尾随空格
例如:
如果我想使用Find
功能搜索单词acoustic
Dim rng as Range
rng = ActiveSheet.Range("A1:K100")
Set foundItem = rng.Find("acoustic")
if not foundItem Is Nothing Then MsgBox foundItem.Address
这个词有很多变体——“声学”、“声学”、“声学”等,但如果它有前导或尾随空格,例如“声学”或“声学”,就找不到它
那么,在执行搜索之前,有没有办法(轻松地)修剪单元格中的空格?或者我必须创建一个函数来遍历范围并首先修剪?您可以在查找以下内容之前修剪范围:
rng.value = Application.Trim(rng.value)
或者,如果范围中有公式,并且您希望保留它们:
rng.Formula = Application.Trim(rng.Formula)
只需将
Find()
方法的LookAt
参数设置为xlPart
Set foundItem = rng.Find(What:="acoustic", LookIn:=xlValues, lookat:=xlPart, MatchCase=False)
也可以在公式中进行相同的搜索:
Set foundItem = rng.Find(What:="acoustic", LookIn:=xlFormulas, lookat:=xlPart, MatchCase=False)
请注意,您应该始终明确指定LookIn
、LookAt
、SearchOrder
和MatchByte
参数,否则Find()
将使用它们的最后设置,即使是从Excel UI!
(我发现总是至少指定
LookIn
和LookAt
参数就足够了)Wow。。。。你对这个VB的东西很感兴趣。我知道你可以修剪,但不知道你可以这样修剪整个范围。这太完美了。谢谢大家!@抱歉,不客气。您可以查看修剪范围的不同方法。