Anne,
This should set your sort for any number of rows, as long as the column structure remains the same. The rest of the code should be OK already.
Sub SortAndSub()
ActiveSheet.Unprotect Password:=""
Application.Goto Reference:="R1C1"
Application.CutCopyMode = False
Range("A1",activesheet.Cells.SpecialCells(xlCellTypeLastCell)).Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range _
("C2"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal
Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(3), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=True
ActiveSheet.Outline.ShowLevels RowLevels:=2
ActiveSheet.Protect Password:=""
End Sub
Sub UnSubT()
Range("A1").Select
ActiveSheet.Unprotect
Selection.RemoveSubtotal
ActiveSheet.Protect
End Sub