Хорошо, вы имеете в виду что-то вроде этого, верно?
OutputString = Replace("They answered the question", "the", "")
Это заменяет все вхождения слова "the" в фразе, включая часть слова "Они".
Самое простое решение - поставить пробелы перед и после слова для замены:
OutputString = Replace("They answered the question", " the ", "")
Это работает для фразы в моем примере выше, но не будет работать, когда слово встречается в начале или в конце фразы.
Для этих случаев вам нужно сделать больше. Примерно так:
Public Function RemoveStopWords( _
ByVal Phrase As String, _
ByVal WordToRemove As String _
) As String
Dim RetVal As String
Dim Tmp As String
'remove the word in the middle of the phrase
RetVal = Replace(Phrase, " " & WordToRemove & " ", " ")
'remove the word at the beginning
Tmp = WordToRemove & " "
If Left(RetVal, Len(Tmp)) = Tmp Then
RetVal = Mid(RetVal, Len(Tmp) + 1)
End If
'remove the word at the end
Tmp = " " & WordToRemove
If Right(RetVal, Len(Tmp)) = Tmp Then
RetVal = Left(RetVal, Len(RetVal) - Len(Tmp))
End If
RemoveStopWords = RetVal
End Function
Это работает до тех пор, пока слова в фразе всегда разделяются пробелами.
Когда могут быть другие разделители, кроме пробелов, вы должны сделать еще больше.
Например, вместо жесткого кодирования пробелов в функции, вы можете перебрать список разделителей и выполнить функцию для каждого из них.
Я не буду показывать это как код сейчас, но вы поняли.