Note: The other languages of the website are Google-translated. Back to English

Como classificar os dados da coluna clicando no cabeçalho no Excel?

Supondo que eu tenha uma gama de dados, agora gostaria de classificar os dados em ordem crescente ou decrescente clicando em qualquer cabeçalho de coluna para obter a seguinte captura de tela mostrada. Como você resolveria esse trabalho no Excel?

doc ordenar por clique 1

Classifique os dados clicando no cabeçalho da coluna com o código VBA


seta azul bolha direita Classifique os dados clicando no cabeçalho da coluna com o código VBA

Normalmente, no Excel, você pode aplicar o recurso Classificar para classificar os dados de forma rápida e fácil, mas, para classificar os dados apenas clicando em uma célula, o seguinte código VBA pode fazer um favor.

1. Clique com o botão direito na guia da planilha em que deseja classificar os dados clicando em uma célula e escolha Ver código a partir do menu de contexto, e no aberto Microsoft Visual Basic para aplicativos janela, copie e cole o seguinte código no módulo em branco:

Código VBA: classifique os dados clicando em uma célula ou cabeçalho de coluna:

Public blnToggle As Boolean
Private Sub Worksheet_BeforeDoubleClick _
(ByVal Target As Range, Cancel As Boolean)
'Updateby Extendoffice
Dim LastColumn As Long, keyColumn As Long, LastRow As Long
Dim SortRange As Range
LastColumn = _
Cells.Find(What:="*", After:=Range("A1"), _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
keyColumn = Target.Column
If keyColumn > LastColumn Then Exit Sub
Application.ScreenUpdating = False
Cancel = True
LastRow = Cells(Rows.Count, keyColumn).End(xlUp).Row
Set SortRange = Target.CurrentRegion
blnToggle = Not blnToggle
If blnToggle = True Then
SortRange.Sort _
Key1:=Cells(2, keyColumn), Order1:=xlAscending, Header:=xlYes
Else
SortRange.Sort _
Key1:=Cells(2, keyColumn), Order1:=xlDescending, Header:=xlYes
End If
Set SortRange = Nothing
Application.ScreenUpdating = True
End Sub

doc ordenar por clique 2

2. E então salve e feche a janela de código, agora, ao clicar duas vezes em qualquer célula ou cabeçalho de coluna dentro do intervalo de dados, a coluna será classificada em ordem crescente, se você clicar duas vezes nela novamente, a coluna será classificada em ordem decrescente de uma vez.


Mais artigos relacionados:

Como alterar o valor da célula clicando na célula?

Como filtrar dados apenas clicando no conteúdo da célula no Excel?


As melhores ferramentas de produtividade para escritório

O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%

  • armadilha para peixes: Insira rapidamente fórmulas complexas, gráficos e qualquer coisa que você tenha usado antes; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • Barra Super Fórmula (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
  • Mesclar células / linhas / colunas sem perder dados; Dividir o conteúdo das células; Combinar linhas / colunas duplicadas... Evite células duplicadas; Comparar intervalos...
  • Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
  • Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
  • Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
  • Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
  • Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
  • Mais de 300 recursos poderosos. Suporta Office / Excel 2007-2021 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Recursos completos de avaliação gratuita de 30 dias. Garantia de devolução do dinheiro em 60 dias.
guia kte 201905

Guia do Office traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
parte inferior da aba do escritório
Comentários (6)
Ainda não há classificações. Seja o primeiro a avaliar!
Este comentário foi feito pelo moderador no site
Funciona ok para subir, clique duas vezes uma segunda vez como indicado para descer não faz nada
Este comentário foi feito pelo moderador no site
Não funciona, não acontece nada, sei como criar módulo em vba, fiz isso, salvou e nada quando o header deu um duplo clique. Por favor, corrija.
Este comentário foi feito pelo moderador no site
Não pode fazer crackerjack - não funciona
Este comentário foi feito pelo moderador no site
Oi, Rob, O código acima funciona bem no meu Excel, você pode fazer uma captura de tela do seu problema aqui?
Este comentário foi feito pelo moderador no site
Olá,
der Code funktioniert auch gut bei mir. Allerdings würde ich gerne die oberen beiden Zeilen nicht mit sortieren, da diese die Überschriften sind.
Qual é o código que dann diesen ändern?

Obrigado!
Este comentário foi feito pelo moderador no site
Olá amigo,
Aqui está o VBA que você precisa:

Público blnToggle As Boolean
Sub-Planilha Privada_AntesDoubleClick _
(Alvo ByVal como intervalo, Cancelar como booleano)
'Atualizar por Extendoffice
Dim LastColumn como longo, keyColumn como longo, LastRow como longo
Dim SortRange As Range
ÚltimaColuna = _
Cells.Find(What:="*", After:=Range("A1"), _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
keyColumn = Target.Column
If keyColumn > LastColumn Then Exit Sub
Application.ScreenUpdating = False
Cancelar = Verdadeiro
ÚltimaLinha = Células(Linhas.Contagem, Coluna-chave).End(xlUp).Linha
On Error Resume Next
Definir SortRange = Target.CurrentRegion
Dim i tanto tempo
i = 2
Defina SortRange = SortRange.Offset(i, 0)
Set SortRange = SortRange.Resize(SortRange.Rows.Count - i, SortRange.Columns.Count)
blnToggle = Não blnToggle
Se blnToggle = True Então
SortRange. Sort _
Key1:=Cells(2, keyColumn), Order1:=xlAscending, Header:=xlNo
Outro
SortRange. Sort _
Key1:=Cells(2, keyColumn), Order1:=xlDescending, Header:=xlNo
Se acabar
Definir SortRange = Nada
Application.ScreenUpdating = True
End Sub


Se você tiver cabeçalhos de 3 linhas, basta alterar "i =2" para "i =3" no VBA. Espero que ajude. Tenha um ótimo dia.

Atenciosamente,
Mandy
Não há comentários postados aqui ainda
Deixe o seu comentário
Postando como convidado
×
Avalie esta postagem:
0   Personagens
Locais sugeridos

Siga-nos

Copyright © 2009 - www.extendoffice.com. | Todos os direitos reservados. Distribuído por ExtendOffice. | | | Mapa do site
Microsoft e o logotipo do Office são marcas comerciais ou marcas registradas da Microsoft Corporation nos Estados Unidos e / ou em outros países.
Protegido por Sectigo SSL