[VBA]
Sub CopyData()
Dim w As Workbook, ws As Worksheet, ss As Worksheet
Dim Arr(), a, tp As Worksheet, sh As Range
Dim i As Long
Application.ScreenUpdating = False
MsgBox ("This might take time... Do not disturb the process!"), vbInformation, "ofsjcr"
ReDim Arr(0)
i = -1
With Sheets("SALARY LIST")
For Each sh In Range(.Cells(3, 1), .Cells(3, 1).End(xlDown))
i = i + 1
ReDim Preserve Arr(i)
Arr(i) = sh
Next
End With
Set tp = Sheets("MASTER TEMPLATE")
For Each a In Arr
tp.Range("C12") = a
tp.Copy after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = a
Next
Application.ScreenUpdating = True
End Sub
[/VBA]