Private Sub Worksheet_Activate()
Dim F As Worksheet, col As Variant
Set F = Sheets("Source")
col = Application.Match(F.[D1], Rows(3), 0)
If IsError(col) Then Exit Sub
With F.[D3].CurrentRegion.Columns(4).Resize(, 3)
Cells(4, col).Resize(.Rows.Count, 3) = .Value
End With
End Sub