Sub ExtractFirstMatchingWordModified()
Dim cell As Range
Dim searchRange As Range
Dim matchRange As Range
Dim words As Variant
Dim found As Boolean
Dim i As Integer
Dim regex As Object
Dim inputString As String
Set regex = CreateObject("VBScript.RegExp")
With regex
.Global = True
.IgnoreCase = True
.Pattern = "[,./?!-!]+"
End With
Set searchRange = Range("A1:A100")
For Each cell In searchRange
inputString = regex.Replace(cell.Value, " ")
words = Split(inputString, " ")
found = False
For i = LBound(words) To UBound(words)
Set matchRange = Range("E1:E100").Find(What:=words(i), LookIn:=xlValues, LookAt:=xlWhole)
If Not matchRange Is Nothing Then
cell.Offset(0, 1).Value = words(i)
found = True
Exit For
End If
Next i
If Not found Then
cell.Offset(0, 1).Value = ""
End If
Next cell
End Sub