Ordenar por Ordem Crescente as Células Seleccionadas em VBA\Excel
Posted by admin on 17 de Dezembro de 2011 | Filed under Exercícios, Línguagens de Programação, Programação
Continuando com a resolução dos meus primeiros exercícios em Vba aqui fica mais um:
Elabore um algoritmo que permita ordenar por ordem crescente um conjunto de células seleccionadas.
Aqui fica o código que resolve o exercício:
Sub SortSelection() Dim CellsCount As Integer Dim x() As Double, aux As Double Dim CellsToSort As Range Dim xCell As Range Dim i As Integer, j As Integer Set CellsToSort = Selection ' Conjunto de células seleccionadas CellsCount = CellsToSort.Count ReDim x(1 To CellsCount) ' dimensionar o vector i = 1 For Each xCell In CellsToSort x(i) = xCell.Value i = i + 1 Next ' ' ordenação crescente ' For i = 1 To CellsCount For j = i To CellsCount If x(i) > x(j) Then ' troca aux = x(i) x(i) = x(j) x(j) = aux End If Next j Next i i = 1 For Each xCell In CellsToSort xCell.Value = x(i) i = i + 1 Next End Sub
Não sei se a forma como implementei a resolução do exercício é a mais correcta, e por isso fico à espera de comentários, ou mesmo de correcções e dicas de melhoramento do código que apresento.
Share