Når du distribuerer dine Excel-rapporter til dine kunder, er det ofte rart at tilføje et par klokker og fløjter. En af de nemmere forbedringer at anvende er muligheden for at sortere, når der dobbeltklikkes på en kolonneoverskrift. Selvom dette kan lyde kompliceret, er det relativt nemt med denne makro.
Du kan downloade et fungerende eksempel på denne dobbeltklik-teknik i Excel .
Sådan fungerer makroen
I denne makro finder du først den sidste ikke-tomme række. Du bruger derefter rækkenummeret til at definere målområdet for rækker, som du skal sortere. Ved at bruge sorteringsmetoden sorterer du målrækkerne efter den kolonne, du dobbeltklikkede på.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Trin 1: Deklarer dine variabler
Dim Last Row As Long
'Trin 2: Find sidste ikke-tomme række
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Trin 3: Sortér stigende på den dobbeltklikkede kolonne
Rows("6:" & LastRow).Sortér _
Key1:=Cells(6, ActiveCell.Column), _
Ordre1:=xlSstigende
Slut Sub
I trin 1 erklærer du en lang heltal-variabel kaldet LastRow for at holde rækkenummeret på den sidste ikke-tomme række.
I trin 2 fanger du den sidste ikke-tomme række ved at starte ved den allersidste række i regnearket og bruge egenskaben End til at hoppe op til den første ikke-tomme celle (svarende til at gå til celle A1048576 og trykke på Ctrl+Shift+pil op).
Bemærk, at du skal ændre kolonnenummeret i denne celle til et, der passer til dit datasæt. For eksempel, hvis din tabel starter på kolonne J, skal du ændre sætningen i trin 2 til Cells(Rows.Count, 10).End(xlUp).Row, fordi kolonne J er den 10. kolonne i regnearket.
I trin 3 definerer du det samlede rækkeområde for dine data. Husk, at rækkevidden skal starte med den første række af data (eksklusive overskrifter) og slutter med den sidste ikke-tomme række. I dette tilfælde starter dit datasæt på række 6, så du bruger sorteringsmetoden på rækker(“6:” & LastRow).
Nøgleargumentet fortæller Excel, hvilket område der skal sorteres på. Igen vil du gerne sikre dig, at det område, du bruger, starter med den første række data (eksklusive overskrifterne).
Sådan bruger du makroen
For at implementere denne makro skal du kopiere og indsætte den i vinduet Worksheet_BeforeDoubleClick begivenhedskode. Hvis du placerer makroen her, kan den køre hver gang du dobbeltklikker på arket:
Aktiver Visual Basic Editor ved at trykke ALT+F11.
Find dit projekt-/projektmappenavn i projektvinduet og klik på plustegnet ved siden af det for at se alle arkene.
Klik på det ark, hvorfra du vil udløse koden.
Vælg begivenheden BeforeDoubleClick i rullemenuen Hændelse.
Indtast eller indsæt koden.