Sub CopyRow()
'    Dim r As Long
'    ActiveSheet.Unprotect
'    r = ActiveSheet.Cells.Find(What:="*", SearchOrder:=xlByRows, _
'        SearchDirection:=xlPrevious).Row + 1
'    Rows(3).Copy
'    Rows(r).Insert
'    ActiveSheet.Protect
    
' use this instead ...

Const strTableName As String = "Table2"

Dim Tbl As ListObject
'Dim NewRow As ListRow

ActiveSheet.Unprotect
Set Tbl = Range(strTableName).ListObject
'Set NewRow = Tbl.ListRows.Add(AlwaysInsert:=True)
Tbl.ListRows.Add AlwaysInsert:=True
ActiveSheet.Protect

End Sub

Regards, TMS