Perhaps as a single macro:
Code:
Sub Demo()
Application.ScreenUpdating = False
Dim Rng As Range
With ActiveDocument.Sections.First.Headers(wdHeaderFooterPrimary).Range.Tables(1).Cell(1, 3)
Set Rng = .Range
Rng.Text = vbNullString
Rng.End = Rng.End - 1
.Range.Fields.Add Rng, wdFieldEmpty, "MERGEFIELD Address_PostCode", False
Rng.Characters.Last.InsertBefore " "
.Range.Fields.Add Rng, wdFieldEmpty, "MERGEFIELD Address_line4", False
Rng.Characters.Last.InsertBefore Chr(11)
.Range.Fields.Add Rng, wdFieldEmpty, "MERGEFIELD Address_line3", False
Rng.Characters.Last.InsertBefore Chr(11)
.Range.Fields.Add Rng, wdFieldEmpty, "MERGEFIELD Address_line2", False
Rng.Characters.Last.InsertBefore Chr(11)
.Range.Fields.Add Rng, wdFieldEmpty, "MERGEFIELD Address_line1", False
End With
Application.ScreenUpdating = True
End Sub
As coded, the macro assumes the mergefields go in cell C1 of the table.