Boa tarde,
Peguei minha sugestão para outra pergunta e adaptei para o seu caso. Assumi que os valores estão na segunda linha (A2:E2) e que a descrição estão na primeira (A1:E1):
Sub ClassificarColunas2
Dim oPlanilhaAtiva As Object, oIntervalo As Object
Dim oCamposdeClassif(0) as new com.sun.star.util.SortField
Dim oDescritorClassif(3) as new com.sun.star.beans.PropertyValue
'Planilha ativa'
oPlanilhaAtiva = ThisComponent.CurrentController.ActiveSheet
'Campos (chaves) de classificação'
oCamposdeClassif(0).Field = 1 'segundo campo (no caso linha)'
'Ordem decrescente'
oCamposdeClassif(0).SortAscending = False
'Indica se NÃO (false) contém títulos/cabeçalhos'
oDescritorClassif(0).Name = "ContainsHeader"
oDescritorClassif(0).Value = False
'Direção da classificação: da esquerda para a direita - colunas (true)'
oDescritorClassif(1).Name = "IsSortColumns"
oDescritorClassif(1).Value = True
'A matriz de campos (chaves) de classif.'
oDescritorClassif(2).Name = "SortFields"
oDescritorClassif(2).Value = oCamposdeClassif()
'Definir o Intervalo'
oIntervalo = oPlanilhaAtiva.getCellRangeByName( "A1:E2" )
'Classificar'
oIntervalo.Sort( oDescritorClassif() )
End Sub
Atte,