I am a bit stuck: I have the below code for a spreadsheet which copies rows, selected with a checkbox, into a second sheet.
I now need to amend this code so that the copied rows are pasted into another workbook on a specific sheet.
I have tried Workbooks("").Worksheets("") and also using the whole C drive path but always get a run-time 9, subscript out of range error. I haven't had any luck in finding a solution online.
Both workbooks are saved on my desktop currently for ease:
Sub CopyRows()
For Each chkbx In ActiveSheet.CheckBoxes
    If chkbx.Value = 1 Then
        For r = 1 To Rows.Count
            If Cells(r, 1).Top = chkbx.Top Then
                With Worksheets("Sheet2")
                    LRow = .Range("A" & Rows.Count).End(xlUp).Row + 1
                    .Range("A" & LRow & ":R" & LRow) = _
                    Worksheets("Sheet1").Range("A" & r & ":R" & r).Value
                End With
                Exit For
            End If
        Next r
    End If
Next
End Sub
This recorded macro takes the data to where it needs to go:
Sub Transfer()
'
' Transfer Macro
'
'
    Range("K2").Select
    Selection.Copy
    Windows("Destination.xls").Activate
    Range("E7:E8").Select
    ActiveSheet.Paste
    Windows("WIP - Live.xlsm").Activate
    Range("B2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Destination.xls").Activate
    Range("E9").Select
    ActiveSheet.Paste
    Windows("WIP - Live.xlsm").Activate
    Range("M2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Destination.xls").Activate
    Range("E10").Select
    ActiveSheet.Paste
    Windows("WIP - Live.xlsm").Activate
    Range("G2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Destination.xls").Activate
    Range("E11").Select
    ActiveSheet.Paste
    Windows("WIP - Live.xlsm").Activate
    Range("N2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Destination.xls").Activate
    Range("E12").Select
    ActiveSheet.Paste
    Windows("WIP - Live.xlsm").Activate
    Range("E2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Destination.xls").Activate
    Range("E13").Select
    ActiveSheet.Paste
    Windows("WIP - Live.xlsm").Activate
    Range("A2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Destination.xls").Activate
    Range("E14").Select
    ActiveSheet.Paste
    Windows("WIP - Live.xlsm").Activate
    Range("S2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Destination.xls").Activate
    Range("E15").Select
    ActiveSheet.Paste
    Windows("WIP - Live.xlsm").Activate
    Range("J2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Destination.xls").Activate
    Range("E16").Select
    ActiveSheet.Paste
    Windows("WIP - Live.xlsm").Activate
    Range("I2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Destination.xls").Activate
    Range("E17").Select
    ActiveSheet.Paste
    Windows("WIP - Live.xlsm").Activate
    Range("C2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Destination.xls").Activate
    Range("E20").Select
    ActiveSheet.Paste
    Windows("WIP - Live.xlsm").Activate
    Range("D2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Destination.xls").Activate
    Range("E21").Select
    ActiveSheet.Paste
    Windows("WIP - Live.xlsm").Activate
End Sub
Code with error at destination workbook:
Sub CopyRows()
For Each chkbx In ActiveSheet.CheckBoxes
    If chkbx.Value = 1 Then
        For r = 1 To Rows.Count
            If Cells(r, 1).Top = chkbx.Top Then
                With Workbooks("Destination").Sheets("Sheet2")
                    LRow = .Range("A" & Rows.Count).End(xlUp).Row + 1
                    .Range("A" & LRow & ":R" & LRow) = _
                    Worksheets("Sheet1").Range("A" & r & ":R" & r).Value
                End With
                Exit For
            End If
        Next r
    End If
Next
End Sub
Solved: I have managed to get it working with the below code:
Sub CopyRows()
For Each chkbx In ActiveSheet.CheckBoxes
    If chkbx.Value = 1 Then
        For r = 1 To Rows.Count
            If Cells(r, 1).Top = chkbx.Top Then
                With Workbooks("Destination.xlsm").Sheets("Details")
                    LRow = .Range("A" & Rows.Count).End(xlUp).Row + 1
                    .Range("A" & LRow & ":U" & LRow) = _
                    Worksheets("Sheet2").Range("A" & r & ":U" & r).Value
                End With
                Exit For
            End If
        Next r
    End If
Next
End Sub
The error was being caused by the Sheet 2 name in the destination workbook. I had to amend the name to details and it started working. Frustratingly simple for how long I spent on it!
Many Thanks to ed2 and norie for the replies and help. It is much appreciated.
 
    