'-----------------------------------------------------------
'MERGING BEGINS HERE
'-----------------------------------------------------------
'-------------- HEADER TOP ------------
'open source file
oWbkSrc = oExc.Workbooks.Open(sHT)
'set source sheet
oWshSrc = oWbkSrc.Worksheets(1)
'copy data: HeaderTop Cell: B1 -> Template cell: D2; B2 -> D3 . . . B12 -> D13
For i = 1 To 12
j = i + 1
oWshSrc.Range("B" & i.ToString).Copy(oWshDst.Range("D" & j.ToString))
Next
oWbkSrc.Close(False) 'close without saving changes
'-------------- HEADER BOTTOM ------------
'open source file
oWbkSrc = oExc.Workbooks.Open(sHB)
'set source sheet
oWshSrc = oWbkSrc.Worksheets(1)
'copy data: HeaderBottom Cell :B1 -> Template Cell:F2, B2 ->F3...B12 -> F13
For i = 1 To 12
j = i + 1
oWshSrc.Range("B" & i.ToString).Copy(oWshDst.Range("F" & j.ToString))
Next
oWbkSrc.Close(False) 'close without saving
'-------------------------------------------------
'Begin Report Top
'-------------------------------------------------
'open source file Report Top
oWbkSrc = oExc.Workbooks.Open(sRT)
'ReportTop:A2->I2 copy to Template:A16->I16
For i = 2
j = i + 14
oWshSrc.Range("A" & i.ToString).Copy(oWshDst.Range("A" & j.ToString))
'corresponding row of B,C,D,E,F,G,H,I
oWshSrc.Range("A" & i.ToString).Copy(oWshDst.Range("A" & j.ToString).offset(0, 1))
Next
' how to code :NEXT SKIP 1 CELL THEN
'ReportTop:A3->I3 copy to Template:A18->I18
For i = 2
j = i + 16
oWshSrc.Range("A" & i.ToString).Copy(oWshDst.Range("A" & j.ToString))
'corresponding row of B,C,D,E,F,G,H,I
oWshSrc.Range("A" & i.ToString).Copy(oWshDst.Range("A" &
j.ToString).offset(0, 1))
Next
' how to code :NEXT SKIP 1 CELL THEN
'ReportTop:A4->I4 copy to Template:A20->I20
For i = 2
j = i + 18
oWshSrc.Range("A" & i.ToString).Copy(oWshDst.Range("A" & j.ToString))
'corresponding row of B,C,D,E,F,G,H,I
oWshSrc.Range("A" & i.ToString).Copy(oWshDst.Range("A" & j.ToString).offset(0, 1))
Next
' how to code :NEXT SKIP 1 CELL THEN
'ReportTop:A5->I5 copy to Template:A22->I22
For i = 2
j = i + 20
oWshSrc.Range("A" & i.ToString).Copy(oWshDst.Range("A" & j.ToString))
'corresponding row of B,C,D,E,F,G,H,I
oWshSrc.Range("A" & i.ToString).Copy(oWshDst.Range("A" & j.ToString).offset(0, 1))
Next
' how to code :NEXT SKIP 1 CELL THEN
'ReportTop:A7->I7 copy to Template:A24->I24
For i = 2
j = i + 22
oWshSrc.Range("A" & i.ToString).Copy(oWshDst.Range("A" & j.ToString))
'corresponding row of B,C,D,E,F,G,H,I
oWshSrc.Range("A" & i.ToString).Copy(oWshDst.Range("A" & j.ToString).offset(0, 1))
Next
oWbkSrc.Close(False) 'close without saving
'-------------------------------------------------
'Begin Report Bottom
'-------------------------------------------------
'open source file Report Bottom
oWbkSrc = oExc.Workbooks.Open(sRB)
'ReportBottom:A2->I2 copy to Template:A17->I17
For i = 2
j = i + 15
oWshSrc.Range("A" & i.ToString).Copy(oWshDst.Range("A" & j.ToString).offset(1, 0))
'corresponding row of B,C,D,E,F,G,H,I
oWshSrc.Range("A" & i.ToString).Copy(oWshDst.Range("A" & j.ToString).offset(0, 1))
Next
'Begin From Skipped Cell
'ReportBottom:A3->I3 copy to Template:A19->I19
For i = 2
j = i + 17
oWshSrc.Range("A" & i.ToString).Copy(oWshDst.Range("A" & j.ToString).offset(1, 0))
'corresponding row of B,C,D,E,F,G,H,I
oWshSrc.Range("A" & i.ToString).Copy(oWshDst.Range("A" & j.ToString).offset(0, 1))
Next
'Next Skipped Cell
'ReportBottom:A4->I4 copy to Template:A21->I21
For i = 2
j = i + 19
oWshSrc.Range("A" & i.ToString).Copy(oWshDst.Range("A" & j.ToString).offset(1, 0))
'corresponding row of B,C,D,E,F,G,H,I
oWshSrc.Range("A" & i.ToString).Copy(oWshDst.Range("A" & j.ToString).offset(0, 1))
Next
'Next Skipped Cell
'ReportBottom:A5->I5 copy to Template:A23->I23
For i = 2
j = i + 21
oWshSrc.Range("A" & i.ToString).Copy(oWshDst.Range("A" & j.ToString).offset(1, 0))
'corresponding row of B,C,D,E,F,G,H,I
oWshSrc.Range("A" & i.ToString).Copy(oWshDst.Range("A" & j.ToString).offset(0, 1))
Next
oWbkSrc.Close(False) 'close without saving
'after all - save destination file
oWbkDst.SaveAs(NewFileName) C:\Temp\NewTemplate.xls