Okay. Jake, I'm not sure how to implement what you've said into this code. Here's the whole code:

Sub SortAndSub()
ActiveSheet.Unprotect Password:=""
Application.Goto Reference:="R1C1"
    Application.CutCopyMode = False
    Range("A1:C228").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
Can you hook me up so this code works on any range? I've also attached the actual sample file I'm using.