2016-08-19 56 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放在代碼模塊的頂部。