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

¿Cómo ordenar los datos de la columna haciendo clic en el encabezado en Excel?

Supongamos que tengo un rango de datos, ahora, me gustaría ordenar los datos en orden ascendente o descendente haciendo clic en el encabezado de cualquier columna para obtener la siguiente captura de pantalla. ¿Cómo podrías resolver este trabajo en Excel?

doc ordenar por clic 1

Ordene los datos haciendo clic en el encabezado de la columna con el código VBA


flecha azul burbuja derecha Ordene los datos haciendo clic en el encabezado de la columna con el código VBA

Normalmente, en Excel, puede aplicar la función Ordenar para ordenar los datos rápida y fácilmente, pero para ordenar los datos simplemente haciendo clic en una celda, el siguiente código VBA puede hacerle un favor.

1. Haga clic con el botón derecho en la pestaña de la hoja en la que desea ordenar los datos haciendo clic en una celda y elija Ver código desde el menú contextual, y en el Microsoft Visual Basic para aplicaciones ventana, copie y pegue el siguiente código en el módulo en blanco:

Código VBA: Ordene los datos haciendo clic en el encabezado de una celda o columna:

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 clic 2

2. Y luego guarde y cierre la ventana de código, ahora, cuando haga doble clic en cualquier encabezado de celda o columna dentro del rango de datos, la columna se ordenará en orden ascendente, si hace doble clic en ella nuevamente, la columna se ordenará descendente a la vez.


Más artículos relacionados:

¿Cómo cambiar el valor de la celda haciendo clic en la celda?

¿Cómo filtrar datos con solo hacer clic en el contenido de la celda en Excel?


Las mejores herramientas de productividad de oficina

Kutools para Excel resuelve la mayoría de sus problemas y aumenta su productividad en un 80%

  • Reutilizar: Inserte rápidamente fórmulas complejas, gráficos y cualquier cosa que hayas usado antes; Cifrar celdas con contraseña; Crear lista de distribución y enviar correos electrónicos ...
  • Barra de súper fórmula (edite fácilmente varias líneas de texto y fórmulas); Diseño de lectura (leer y editar fácilmente un gran número de celdas); Pegar en rango filtrado...
  • Combinar celdas / filas / columnas sin perder datos; Contenido de celdas divididas; Combinar filas / columnas duplicadas... Prevenir celdas duplicadas; Comparar rangos...
  • Seleccione Duplicado o Único Filas; Seleccionar filas en blanco (todas las celdas están vacías); Super Find y Fuzzy Find en muchos libros de trabajo; Selección aleatoria ...
  • Copia exacta Varias celdas sin cambiar la referencia de la fórmula; Crear referencias automáticamente a varias hojas; Insertar viñetas, Casillas de verificación y más ...
  • Extraer texto, Agregar texto, Eliminar por posición, Quitar espacio; Crear e imprimir subtotales de paginación; Convertir entre contenido de celdas y comentarios...
  • Súper filtro (guardar y aplicar esquemas de filtros a otras hojas); Orden avanzado por mes / semana / día, frecuencia y más; Filtro especial en negrita, cursiva ...
  • Combinar libros y hojas de trabajo; Combinar tablas basadas en columnas clave; Dividir datos en varias hojas; Conversión por lotes de xls, xlsx y PDF...
  • Más de 300 potentes funciones. Compatible con Office/Excel 2007-2021 y 365. Compatible con todos los idiomas. Fácil implementación en su empresa u organización. Funciones completas Prueba gratuita de 30 días. Garantía de devolución de dinero de 60 días.
pestaña kte 201905

Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
  • ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!
officetab parte inferior
Comentarios (6)
Aún no hay calificaciones. ¡Sé el primero en calificar!
Este comentario fue minimizado por el moderador en el sitio
Funciona bien para ascender, haga doble clic una segunda vez como se indica para descender no hace nada
Este comentario fue minimizado por el moderador en el sitio
No funciona, no pasa nada, sé cómo crear un módulo en vba, hice eso, guardé y nada cuando se hizo doble clic en el encabezado. Por favor, arreglalo.
Este comentario fue minimizado por el moderador en el sitio
No se puede hacer crackerjack - no funciona
Este comentario fue minimizado por el moderador en el sitio
Hola, Rob, el código anterior funciona bien en mi Excel, ¿puedes dar una captura de pantalla de tu problema aquí?
Este comentario fue minimizado por el moderador en el sitio
hallo,
der Code funktioniert auch gut bei mir. Allerdings würde ich gerne die oberen beiden Zeilen nicht mit sortieren, da diese die Überschriften sind.
Wie muss ich dann diesen Code ändern?

¡Gracias!
Este comentario fue minimizado por el moderador en el sitio
Hola amigo,
Aquí está el VBA que necesita:

Público blnAlternar como booleano
Subhoja de trabajo privada_BeforeDoubleClick _
(Objetivo ByVal como rango, Cancelar como booleano)
'Actualizar por Extendoffice
Dim LastColumn tan largo, keyColumn tan largo, LastRow tan largo
Dim SortRange como rango
ÚltimaColumna = _
Cells.Find(Qué:="*", Después:=Rango("A1"), _
SearchOrder:=xlByColumns, SearchDirection:=xlAnterior).Columna
keyColumn = Destino.Columna
Si keyColumn> LastColumn Entonces salga de Sub
Application.ScreenUpdating = False
Cancelar = True
LastRow = Cells(Rows.Count, keyColumn).End(xlUp).Row
On Error Resume Next
Establezca SortRange = Target.CurrentRegion
Dim i As Long
i = 2
Establecer SortRange = SortRange.Offset(i, 0)
Establecer SortRange = SortRange.Resize(SortRange.Rows.Count - i, SortRange.Columns.Count)
blnToggle = No blnToggle
Si blnToggle = Verdadero Entonces
SortRange.Ordenar _
Clave1:=Celdas(2, columnaclave), Orden1:=xlAscendente, Encabezado:=xlNo
otro
SortRange.Ordenar _
Clave1:=Celdas(2, columnaclave), Orden1:=xlDescendente, Encabezado:=xlNo
Si terminar
Establecer SortRange = Nada
Application.ScreenUpdating = True
End Sub


Si tiene encabezados de 3 filas, simplemente cambie "i = 2" a "i = 3" en el VBA. Espero eso ayude. Qué tengas un lindo día.

Atentamente,
Mandy
No hay comentarios publicados aquí todavía
Deje sus comentarios
Publicar como invitado
×
Califica esta publicación:
0   Personajes
Ubicaciones sugeridas

Seguinos

Copyright © 2009 - www.extendoffice.com. | Reservados todos los derechos. Energizado por ExtendOffice, | Mapa del Sitio
Microsoft y el logotipo de Office son marcas comerciales o marcas comerciales registradas de Microsoft Corporation en los Estados Unidos y / o en otros países.
Protegido por Sectigo SSL