首页 > 解决方案 > 在带有 VBA 的文本中查找单词(但不在另一个单词中)

问题描述

例如,假设我有以下单词和文本:

word  = "bee"  
text1 = "bla bla bee  bla bla... "  
text2 = "bla bla beep bla bla ..."  

我想为第一种情况返回 True,为第二种情况返回 False。

经过一段时间的搜索,我找到了一种在文本中查找单词的方法:

If Application.IsNumber(Application.Search(word, text1)) Then 'returns True
If Application.IsNumber(Application.Search(word, text2)) Then 'returns True

但它在这两种情况下都返回 True。
是否有一种简单的方法(适用于任何单词和文本)来检查文本是否包含我正在寻找的单词,但不包含在其他单词中?

标签: stringvba

解决方案


在每个输入的前后添加空格,当vba有Instr时也不需要工作表功能:

Sub test()
Dim text1 As String
Dim word As String

word = "bee"
text1 = "bla bla beep bla bla... "


If InStr(" " & text1 & " ", " " & word & " ") > 0 Then
    MsgBox "True"
Else
    MsgBox "False"
End If
End Sub

推荐阅读