string - 在带有 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。
是否有一种简单的方法(适用于任何单词和文本)来检查文本是否包含我正在寻找的单词,但不包含在其他单词中?
解决方案
在每个输入的前后添加空格,当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
推荐阅读
- c++ - 如何为比对象所有者寿命短的类组织对象所有权?
- c++ - 从构造函数中删除这个指针
- bash - 更改从 request_uri 获得的文件名
- c++ - 如何使用 C++ 17 检查运算符!= 是否存在模板参数?
- swift - 从 appDelegate 观察 .effectiveAppearance 变化
- java - Jersey 2.x post call MessageBodyWriter not found for media type=application/xml
- c# - 我是语义模型的初学者,使用 roslyn 从 TypeSyntax 获取具体类型的 TypeSymbol 的步骤是什么?
- php - 无法让 laravel 的多态关系起作用
- xamarin - 如何在 App Center Build 中使用 .NET Core 3.0 Preview8
- c++ - C++ 触发一次事件