Comprar a Coleção de 15.000 Macros, Funções e Fórmulas do Excel        Dicas


Questão 22:

Minha Coluna C contem valores numéricos inteiros. Preciso fazer um Sort nessa Coluna e mais tarde voltar atrás, desfazendo esse Sort. Ativando o Recorder, Sorteando a Coluna de Dados e aplicando Undo a Macro não se completa. Como resolver o problema usando o VBA ?

Solução 22:

Estamos supondo seus dados no range C2:Cn
Adicione a Coluna Dummie B adjacente à sua Coluna de dados.
Essa coluna B deverá conter a série de valores 1,2,3,4,5...etc
no range B2:Bn
Selecione as colunas B:C e execute a macro abaixo que prescinde da função UNDO.

Sub SortDesfazSort( )
Selection.Sort Key1:=_
Range("C2"), Order1:=xlAscending, Key2:=Range("B2"), _
Order2:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:= False, Orientation:=xlTopToBottom
'[insira seu código complementar]
Selection.Sort Key1:=_
Range("B2"), Order1:=xlAscending, Key2:=Range("C2"), _
Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:= False, Orientation:=xlTopToBottom
End Sub