我有一個關鍵字列表,並希望查看一個單元是否包含這些單詞中的任何一個。例如,如果我的關鍵字列表是(貓,狗,海龜),該功能將返回匹配,如果它正在看「狗先生魔術土地」。我發現了一個很好的UDF在線用作函數,但是當我嘗試循環它時,它會測試關鍵字列表中的每個單詞,我會得到#VALUE !.第一個函數是我的循環,第二個函數是在因特網上找到的UDF匹配函數(對不起,不記得在哪裏,但是支持誰的支持)。我嘗試過InStr等單詞匹配函數的變體。Excel中的循環詞匹配功能VBA
Function StringFind(rng(), source)
For I = LBound(rng) To UBound(rng)
StringFind = MyMatch(rng(I), source)
If StringFind = "MATCH" Then Exit Function
Next I
StringFind = "NO MATCH"
End Function
Function MyMatch(FindText As String, WithinText As Variant) As String
'
Dim vntFind As Variant
Dim vntWithin As Variant
For Each vntFind In Split(UCase(FindText), " ")
If Len(Trim(vntFind)) > 0 Then
For Each vntWithin In Split(UCase(WithinText), " ")
If Len(Trim(vntWithin)) > 0 Then
If vntFind = vntWithin Then
MyMatch = "MATCH"
Exit Function
End If
End If
Next
End If
Next
MyMatch = "NO MATCH"
End Function
是的,我意識到它退出循環後,我不需要stringfind =「不匹配」的一部分,但它是一個想法... – postelrich 2012-03-30 13:45:50