Quan distribuïu els vostres informes d'Excel als vostres clients, sovint és bo afegir-hi algunes campanes i xiulets. Una de les millores més fàcils d'aplicar és la capacitat d'ordenar quan es fa doble clic en una capçalera de columna. Tot i que això pot semblar complicat, és relativament fàcil amb aquesta macro.
Podeu descarregar un exemple de treball d'aquesta tècnica de doble clic a Excel .
Com funciona la macro
En aquesta macro, primer trobareu l'última fila no buida. A continuació, feu servir aquest número de fila per definir l'interval objectiu de files que heu d'ordenar. Mitjançant el mètode Sort, ordeneu les files de destinació per la columna en què heu fet doble clic.
Private Sub Worksheet_BeforeDoubleClick (ByVal Target com a rang, cancel·la com a booleà)
'Pas 1: declara les teves variables
Dim LastRow As Long
"Pas 2: cerqueu l'última fila no buida
LastRow = Cel·les(Files.Recompte, 1).Final(xlAmunt).Fila
"Pas 3: ordena ascendent a la columna amb doble clic
Files("6:" i LastRow).Ordena _
Clau1:=Cèl·lules (6, ActiveCell.Column), _
Ordre1:=xlAscendent
End Sub
Al pas 1, declareu una variable d'enter llarg anomenada LastRow per contenir el número de fila de l'última fila no buida.
Al pas 2, captureu l'última fila no buida començant a l'última fila del full de treball i utilitzant la propietat End per saltar a la primera cel·la no buida (equivalent a anar a la cel·la A1048576 i prémer Ctrl+Maj+fletxa amunt).
Tingueu en compte que heu de canviar el número de columna d'aquesta cel·la per un que sigui adequat per al vostre conjunt de dades. Per exemple, si la vostra taula comença a la columna J, heu de canviar la declaració del pas 2 a Cel·les (Files.Recompte, 10).Fi (xlAmunt).Fila perquè la columna J és la desena columna del full de treball.
Al pas 3, definiu l'interval total de files de les vostres dades. Tingueu en compte que l'interval de files ha de començar amb la primera fila de dades (excepte les capçaleres) i acaba amb l'última fila no buida. En aquest cas, el vostre conjunt de dades comença a la fila 6, de manera que utilitzeu el mètode Sort on Rows ("6:" i LastRow).
L'argument Clau indica a Excel en quin interval ordenar. De nou, voldreu assegurar-vos que l'interval que utilitzeu comenci amb la primera fila de dades (excepte les capçaleres).
Com utilitzar la macro
Per implementar aquesta macro, heu de copiar-la i enganxar-la a la finestra del codi d'esdeveniment Worksheet_BeforeDoubleClick. Si col·loqueu la macro aquí, s'executa cada vegada que feu doble clic al full:
Activeu Visual Basic Editor prement ALT+F11.
A la finestra Projecte, cerqueu el nom del vostre projecte/llibre de treball i feu clic al signe més que hi ha al costat per veure tots els fulls.
Feu clic al full des del qual voleu activar el codi.
Al quadre desplegable Esdeveniment, seleccioneu l'esdeveniment BeforeDoubleClick.
Escriviu o enganxeu el codi.
