有一個代碼用於搜索VBA字符串中的特定單詞。目前我使用INSTR:在VBA字符串中搜索特定單詞
tag1 = InStr(1, dish, keyword, vbTextCompare)
但是面臨的挑戰是,搜索是比較字符串,而不是單詞。 例如如果我作爲一個字符串的關鍵詞搜索「蛋」 - 茄子比薩,它返回一個true值。
理想情況下,我只想搜索單詞「蛋」是否存在於字符串中。有更好的功能可以使用嗎?
有一個代碼用於搜索VBA字符串中的特定單詞。目前我使用INSTR:在VBA字符串中搜索特定單詞
tag1 = InStr(1, dish, keyword, vbTextCompare)
但是面臨的挑戰是,搜索是比較字符串,而不是單詞。 例如如果我作爲一個字符串的關鍵詞搜索「蛋」 - 茄子比薩,它返回一個true值。
理想情況下,我只想搜索單詞「蛋」是否存在於字符串中。有更好的功能可以使用嗎?
您還可以使用正則表達式在VBA中實現此目的。
特別注意^和$操作符來強制全字匹配。
所以在你的情況下,像^ Egg $這樣的模式應該做你想要的。
在這裏看到這方面的一些很好的幫助: How to use Regular Expressions (Regex) in Microsoft Excel both in-cell and loops
上面這個答案不是正確。我不能評論它。那將返回1,即找到OP試圖找不到的蛋的實例 –
InStr
是要走的路。爲了找出字符串在文本中出現的次數,可以使用這一行代碼。這裏我用你的例子。
Debug.Print UBound(Split("Eggplant Pizza", "Egg"))
要使代碼不區分大小寫,您可以將Option Compare Text
放在代碼模塊的頂部。
'。找到'?記錄一個宏或搜索stackoverflow。 –
你知道Google?!?!如果您搜索「excel vba找到字符串中的確切單詞」第3個結果是解決您的問題的可能方法http://stackoverflow.com/questions/28100969/excel-exact-word-matching – Fabrizio