I have created 2 funcs, but both give Run-time error '1004':  Application-defined or object-defined error. Can you tell me what is the error here.
Sub test()
    Dim RowCount, ColumnCount As Integer
    Dim sRangeSt, sRangeEn, tRangeSt, tRangeEn As String
    Dim tmpRange As Range
        RowCount = Range("main").Rows.Count
        ColumnCount = Range("main").Columns.Count
        'prepare range start and end cell-addresses
        sRangeSt = Range("main").End(xlToLeft).Offset(1, 0).Address
        sRangeEn = Range("main").End(xlToLeft).Offset(1, 0).End(xlToRight).Address
        tRangeSt = Range("main").End(xlToLeft).Offset(2, 0).Address
        tRangeEn = Range("main").End(xlToLeft).Offset(RowCount - 1, ColumnCount - 1).Address
        'Perform style copy
        Range(sRangeSt & ":" & sRangeEn).Copy
        'Worksheets("Report").Select
        Worksheets("Report").Range(tRangeSt & ":" & tRangeEn).PasteSpecial xlPasteFormats
End Sub
Sub test2()
    Dim sRangeSt, sRangeEn, tRangeSt, tRangeEn As String
    sRangeSt = Range("main").End(xlToLeft).Offset(1, 0).Address
    sRangeEn = Range("main").End(xlToLeft).Offset(1, 0).End(xlToRight).Address
    'Perform style copy
    Range(sRangeSt & ":" & sRangeEn).Copy
    For Each Row In Range("main").Rows
        Range(Row.Address).PasteSpecial xmlPasteFormts
    Next Row
End Sub
First block gives error at the last line. I tried by reducing the row-count of target rows, and it ran fine for excel range 4096 rows, but failed for ranges of greater row-count with the above error.
 
     
    