Немного отредактировал ваш код в соответствии с описанными вами потребностями (если он правильно понят)
- Вы всегда ищете значение в абсолютной ячейке
E1
- Вы заменяетезначение поиска в столбце B с полным значением из столбца A
Мои примеры данных на основе ваших комментариев:
![enter image description here](https://i.stack.imgur.com/RaFoX.png)
Sub FindReplaceAll()
Dim fnd As String, rplc As String, i As Long
With ActiveWorkbook.Sheets("Sheet1") 'Your sheetname goes here
fnd = .Range("E1").Value
For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
.Cells(i, 2).Replace what:=fnd, Replacement:=.Cells(i, 1).Value
Next i
End With
End Sub
После запуска макроса:
![enter image description here](https://i.stack.imgur.com/jgfL6.png)
И в случае, если вы можете просто сделать это с помощью формулы и избежать VBA (особенно, если вы новичок в этом),например в C2
положить:
=IF(LEFT(B2,(SEARCH("-",B2)-1))=$E$1,A2&RIGHT(B2,LEN(B2)-SEARCH("-",B2)+1),B2)
и перетащить вниз ...
![enter image description here](https://i.stack.imgur.com/t1OrK.png)