Try:
Range("A4:G" & range("A" & rows.count).end(xlup).row).Select
    Activesheet.Sort.SortFields.Clear
    Activesheet.Sort.SortFields.Add Key:=Range( _
        "B4:B44"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With Activesheet.Sort
        .SetRange Range("A4:G" & range("A" & rows.count).end(xlup).row)
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With