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: 246
        
microsoft-excel
|vba
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