2016-08-19 57 views
-2

有一个代码用于搜索VBA字符串中的特定单词。目前我使用INSTR在VBA字符串中搜索特定单词

tag1 = InStr(1, dish, keyword, vbTextCompare) 

但是面临的挑战是,搜索是比较字符串,而不是单词。 例如如果我作为一个字符串的关键词搜索“” - 茄子比萨,它返回一个true值。

理想情况下,我只想搜索单词“”是否存在于字符串中。有更好的功能可以使用吗?

+1

'。找到'?记录一个宏或搜索stackoverflow。 –

+2

你知道Google?!?!如果您搜索“excel vba找到字符串中的确切单词”第3个结果是解决您的问题的可能方法http://stackoverflow.com/questions/28100969/excel-exact-word-matching – Fabrizio

回答

0

您还可以使用正则表达式在VBA中实现此目的。

特别注意^和$操作符来强制全字匹配。

所以在你的情况下,像^ Egg $这样的模式应该做你想要的。

在这里看到这方面的一些很好的帮助: How to use Regular Expressions (Regex) in Microsoft Excel both in-cell and loops

+0

上面这个答案不是正确。我不能评论它。那将返回1,即找到OP试图找不到的蛋的实例 –

0

InStr是要走的路。为了找出字符串在文本中出现的次数,可以使用这一行代码。这里我用你的例子。

Debug.Print UBound(Split("Eggplant Pizza", "Egg")) 

要使代码不区分大小写,您可以将Option Compare Text放在代码模块的顶部。