This seems to work. Change the password to whatever you want. If you set the worksheet protection manually, meaning how you want it. Select locked or unlocked cells etc., then when you run this you should find the new row unlocked and the other cells locked with the settings you specified.
Good Luck. 
Sub CopyRow()
Dim ws As Worksheet, x As Range
Set ws = Worksheets("Error Report")
ws.Unprotect ("password")
With ws.ListObjects("Table2")
.DataBodyRange.Locked = True
.ListRows.Add
Set x = .ListRows(.ListRows.Count).Range
x.Locked = False
End With
ws.Protect ("password")
End Sub
is there a way to prevent the end user from going to the developer tab > macro or view code to see the password?
In the Visual Basic Editor > Tools > VBA Project Properties > Protection Tab, the rest is self explanatory.
Bookmarks