mburn23
mburn23

Reputation: 17

VBA 1004 Error Reference Range with Cells Formula

I'm trying to speed up a model, avoiding the use of indirect formula. Selecting a sheet based on the sheet name in 'Live' B3, then using a start and end row and column formula to copy the range and paste it in the 'LivePaste' Range back on the 'Live' tab. I've been trying to avoid select and activate if possible and finding that I keep running into various errors. Thanks, Max

Sub LiveCopyPaste()

Dim sht As String
Dim row_start As Long
Dim row_end As Long
Dim col_start As Long
Dim col_end As Long


    sht = Sheets("LIVE").Range("B3")
    row_start = Sheets("LIVE").Range("K4")
    row_end = Sheets("LIVE").Range("K5")
    col_start = Sheets("LIVE").Range("M4")
    col_end = Sheets("Live").Range("M5")
    
    Range("LivePaste") = Range(Sheets(sht).Cells(row_start, col_start), Sheets(sht).Cells(row_end, col_end))
 
    
    

End Sub


Expected this to copy the Range on the sht referenced tab and paste in in livePaste. This didn't happen, just keeps coming up with 1004 errors.

Upvotes: 0

Views: 35

Answers (1)

Ike
Ike

Reputation: 13014

Although there are more code lines - but it is easier to avoid errors if you are more explicit esp. regarding the worksheets you want to work with ...

Sub LiveCopyPaste()

Dim shtName As String
Dim row_start As Long
Dim row_end As Long
Dim col_start As Long
Dim col_end As Long

With Sheets("LIVE")
    shtName = .Range("B3")
    row_start = .Range("K4")
    row_end = .Range("K5")
    col_start = .Range("M4")
    col_end = .Range("M5")
End With
    

Dim wsSource As Worksheet
Set wsSource = ThisWorkbook.Worksheets(shtName)

Dim rgSource As Range
With wsSource
    Set rgSource = .Range(.Cells(row_start, col_start), .Cells(row_end, col_end))
End With

Dim rgTarget As Range
Set rgTarget = Application.Range("LivePaste")
With rgSource
    rgTarget.Resize(.Rows.Count, .Columns.Count).Value = .Value
End With
 
End Sub

As I don't know if the "LivePaste" has the same "dimensions" as rgSource I am resizing it to the size of rgSource.

Upvotes: 1

Related Questions