I use something like this in one of my macros I've adjusted it a
little, is this what you are after?
Sub DefineRange()
lastrow = ActiveSheet.UsedRange.Rows.Count
ActiveWorkbook.Names("MAMList").Delete 'deletes the existing
name range (optional)
Sheets("Sheet1").Select
Cells(1, 1).Select 'defines the first cell of your range
Range(Selection, Selection.Offset(lastrow - 1, 3)).Select '
selects to the last row and the specified columns
Selection.Name = "MAMList" ' applies the name to the selected
range
End Sub