Getting Run time 1004 error in code

Posted by krishna123 on Super User See other posts from Super User or by krishna123
Published on 2012-10-01T15:21:36Z Indexed on 2012/10/01 15:42 UTC
Read the original article Hit count: 161

Filed under:
|

I tried the code provided by vba express for combining sheet, while execution it is displaying Run Time error 1004: Application Defined or Object Defined Error:

My Scenario is: I have a Excel, in that I have first sheet "Connection" and after it I have Sheet1, Sheet2 and so on. I am combining all sheets except Sheet"Conection" by saying start with sheet2.

I tried following line of code to exclude "Connection" sheet: If Not Sheet.Name = "Connection" then but it did not work.

Whatever the sheets I have in some of them I have large data in some cells.

Here is the code which I am using: I have highlighted the line

Sub CopyFromWorksheets() Dim wrk As Workbook 'Workbook object - Always good to work with object variables Dim sht As Worksheet 'Object for handling worksheets in loop Dim trg As Worksheet 'Master Worksheet Dim rng As Range 'Range object Dim colCount As Integer 'Column count in tables in the worksheets

Set wrk = ActiveWorkbook 'Working in active workbook

For Each sht In wrk.Worksheets

    If sht.Name = "Master" Then
    sht.Delete

        Exit Sub
    End If
Next sht

 'We don't want screen updating
Application.ScreenUpdating = False

 'trg.SaveAs "C:\temp\CPReport1.xls"

 'Add new worksheet as the last worksheet
Set trg = wrk.Worksheets.Add(After:=wrk.Worksheets(wrk.Worksheets.Count))

 'Rename the new worksheet
trg.Name = "Master"

 'Get column headers from the first worksheet
 'Column count first

Set sht = wrk.Worksheets(2)

colCount = sht.Cells(1, 255).End(xlToLeft).Column

 'Now retrieve headers, no copy&paste needed

With trg.Cells(1, 1).Resize(1, colCount)
    .Value = sht.Cells(1, 1).Resize(1, colCount).Value
     'Set font as bold
    .Font.Bold = True
End With

 trg.SaveAs "C:\temp\CPReport1.xls"

 'We can start loop

'Skip Sheet - Connection
    If Not sht.Name = "Connection" Then
        For Each sht In wrk.Worksheets

            'If worksheet in loop is the last one, stop execution (it is Master worksheet)
            If sht.Index = wrk.Worksheets.Count Then
            Exit For
            End If

            'Data range in worksheet - starts from second row as first rows are the header rows in all worksheets
            Set rng = sht.Range(sht.Cells(2, 1), sht.Cells(65536, 1).End(xlUp).Resize(, colCount))
            'Put data into the Master worksheet

'----------------- Error in below line -------------------------------------------------- trg.Cells(65536, 1).End(xlUp).Offset(1).Resize(rng.Rows.Count, rng.Columns.Count).Value = rng.Value '----------------------------------------------------------------------------------------
Next sht

    End If

 'Fit the columns in Master worksheet
trg.Columns.AutoFit

 'Dim dest, destyfile
 'dest = "E:\Test_Merge\"
 'destyfile = dest & "_" & trg.Name
 'trg.SaveAs (destyfile)
 'Screen updating should be activated
Application.ScreenUpdating = True

End Sub

© Super User or respective owner

Related posts about microsoft-excel

Related posts about vba