https://learn.microsoft.com/en-us/office/vba/api/excel.range.
find
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("B")) Is Nothing Then
Dim Val As String
Val = Target.Value
MsgBox Val
Dim c As Range
Dim firstAddress As String
With ThisWorkbook.Sheets("Sheet1").Range("D2:E9")
Set c = .Find(Val, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Value = Replace(c.Value, Val, "xyz")
Set c = .FindNext(c)
Loop While Not c Is Nothing
End If
End With
End If
End Sub