在单元格中查找string
我试图检查stringNAME
是否存在于活动单元格中,如果存在,程序应忽略该单元格。 如果不存在,则该单元格的内容必须被删除。 这是我有的代码:
Sub Search() Range("B3").Select If ActiveCell.Find(What:="NAME") = False Then ActiveCell.Clear End Sub
我不明白为什么它不起作用。 正如你所看到的,我现在只是检查单元格B3。
这一切都取决于你想find什么样的比赛。 那么你想找什么? 一场完整的比赛? 部分匹配? 区分大小写的匹配?
A) 完全匹配+区分大小写
在这种情况下,单元格值必须是"NAME"
。 像" NaMe"
, "NAme"
, "name"
等实例将不匹配。
If ActiveCell.Value <> "NAME" Then ActiveCell.ClearContents
B) 完全匹配+不区分大小写
If UCase(ActiveCell.Value) <> "NAME" Then ActiveCell.ClearContents
要么
If LCase(ActiveCell.Value) <> "name" Then ActiveCell.ClearContents
在这种情况下,单元格值必须是"NAME"
或"NaMe"
等。 " NaMe"
, "Surname"
等实例将不匹配。
C) 部分匹配+区分大小写
If InStr(1, ActiveCell.Value, "NAME") = 0 Then ActiveCell.ClearContents
在这种情况下,单元格值必须包含"NAME"
。 例如NAME GAME
。 SURNAME
等。 "My Name is Sid"
, "What's in a NAMe"
等"What's in a NAMe"
将不匹配。
D) 部分匹配+不区分大小写
If InStr(1, ActiveCell.Value, "NAME", vbTextCompare) = 0 Then ActiveCell.ClearContents
在这种情况下,单元格值必须包含"NAME"
。 Case
不重要。 例如NAME GAME
, SURNAme
, "My Name is Sid"
, "What's in a NAMe"
等。
以下是不同场景的快照。
注意 :如果你想使用.FIND
那么看看这个链接 。 基于上述情况,你将不得不玩
-
LookAt:=
可以将xlPart
或xlWhole
作为它的一个参数。 -
MatchCase:=
可以将True
或False
作为参数之一。
这是否做你想要的?
Sub Search() Range("B3").Activate If ActiveCell.Value = "NAME" = False Then ActiveCell.Clear End Sub
请注意,区分大小写并查找整个单元格的内容而不是单元格内的string。