I've been working with a script for years, but due to some changes it now also needs to work when the sheet is inactive.

Sub Sort_Skill_Table()
'
' Sort TBL_SKILLS on FC and DEPARTMENT columns


    ActiveWorkbook.Worksheets("LISTS").ListObjects("TBL_SKILLS").Sort.SortFields. _
        Clear
    ActiveWorkbook.Worksheets("LISTS").ListObjects("TBL_SKILLS").Sort.SortFields. _
        Add Key:=Range("TBL_SKILLS[FC]"), SortOn:=xlSortOnValues, Order:= _
        xlDescending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("LISTS").ListObjects("TBL_SKILLS").Sort.SortFields. _
        Add Key:=Range("TBL_SKILLS[DEPARTMENT]"), SortOn:=xlSortOnValues, Order:= _
        xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("LISTS").ListObjects("TBL_SKILLS").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
Any ideas?