The following works here. You most like will need to change the name of the destination workbook in the macro code. For my purposes of testing here, I named the destination workbook TempWB and it was
placed on my desktop. You will need to place your destination workbook on the desktop as well or change the macro code to point to the location in your situation.
Option Explicit
Sub copy_wb()
Dim DestWB As Workbook
Dim DestSh As Worksheet
Dim Mysheet As Worksheet
Dim FromlastRow As Long
Dim ToLastRow As Long
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
End With
Set DestWB = Workbooks.Open(Environ("USERPROFILE") & "\OneDrive\Desktop\TempWB")
Set Mysheet = ThisWorkbook.Worksheets("Sheetwithdatatocopy")
Set DestSh = DestWB.Worksheets("Sheet1")
FromlastRow = Mysheet.Cells(Rows.Count, 7).End(xlUp).Row '- 1
ToLastRow = DestSh.Cells(Rows.Count, 1).End(xlUp).Row + 1
With Mysheet
'.Visible = True
.Activate
.Range("A" & FromlastRow).EntireRow.Copy _
Destination:=DestSh.Range("A" & ToLastRow)
'.Visible = xlVeryHidden
End With
Application.CutCopyMode = False
DestWB.Close savechanges:=True
With Application
.DisplayAlerts = True
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
The above code is also presuming you will always have data in column G. It is column G that the macro is searching for the last row used.
I just noticed you have additional data in the destination workbook below the table to which you are pasting. At the moment I am not certain how
you would acommodate for that additional data. You might be able to add to the copy/paste macro additional code that would temporarily cut that
data, then paste it back below the table after adding your new row in the table. ???? Or perhaps someone else can present a more efficient
solution.