For copying values, not formulas, I did a copy-paste special with the macro recorder and then edited the code generated to remove the Select and Selection parts. The macro recorder is the best way to generate code if you are not sure of the syntax or Excel object names.
In which column is the text "Closed" the result of a formula? In the following code I've assumed it is column A.
Private Sub Worksheet_Change(ByVal Target As Range)
Static ignoreEvent As Boolean
If Not ignoreEvent Then
With Target
If .Parent.Cells(.Row, "A").Text = "Closed" Then
.EntireRow.Copy
Sheets("Closed").Range("A20").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
Application.CutCopyMode = False
ignoreEvent = True 'Next statement makes recursive call to Worksheet_Change, so set flag to ignore it
.EntireRow.Delete
ignoreEvent = False
End If
End With
End If
End Sub
If it isn't column A, change the "A" in the line | If .Parent.Cells(.Row, "A").Text = "Closed" Then | to the appropriate column letter.
Bookmarks