Perhaps something like:
Sub Demo()
Application.ScreenUpdating = False
Dim ArrFnd As Variant, ArrP As Variant, ArrS As Variant
Dim i As Long, j As Long, StrP As String, StrS As String
ArrFnd = Array("#MX18", "#JK78", "#AO45", "#BC39")
ArrP = Array(1, 1, 3, 4)
ArrS = Array(1, 1, 2, 2)
With ActiveDocument.Range.Find
.ClearFormatting
.Replacement.ClearFormatting
.MatchWholeWord = True
.MatchCase = True
.Format = False
.Forward = True
.Wrap = wdFindContinue
For i = 0 To UBound(ArrFnd)
StrP = "": StrS = ""
For j = 1 To ArrP(i)
StrP = StrP & Chr(11)
Next
For j = 1 To ArrS(i)
StrS = StrS & Chr(11)
Next
.Text = ArrFnd(i)
.Replacement.Text = StrP & "^&" & StrS
.Execute Replace:=wdReplaceAll
Next
End With
Application.ScreenUpdating = True
End Sub