När du distribuerar dina Excel-rapporter till dina kunder är det ofta trevligt att lägga till några ringsignaler. En av de enklare förbättringarna att tillämpa är möjligheten att sortera när en kolumnrubrik dubbelklickas. Även om detta kan låta komplicerat är det relativt enkelt med detta makro.
Du kan ladda ner ett fungerande exempel på denna dubbelklicksteknik i Excel .
Hur makrot fungerar
I detta makro hittar du först den sista icke-tomma raden. Du använder sedan det radnumret för att definiera målintervallet för rader som du behöver sortera. Med sorteringsmetoden sorterar du målraderna efter kolumnen du dubbelklickade på.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Steg 1: Deklarera dina variabler
Dim Last Row As Long
'Steg 2: Hitta den sista icke-tomma raden
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
'Steg 3: Sortera stigande på dubbelklickad kolumn
Rows("6:" & LastRow).Sortera _
Key1:=Cells(6, ActiveCell.Column), _
Order1:=xlStigande
Avsluta Sub
I steg 1 deklarerar du en Long Integer-variabel som heter LastRow för att hålla radnumret för den sista icke-tomma raden.
I steg 2 fångar du den sista icke-tomma raden genom att börja på den allra sista raden i kalkylbladet och använda egenskapen End för att hoppa upp till den första icke-tomma cellen (motsvarande att gå till cell A1048576 och trycka på Ctrl+Skift+uppåtpil).
Observera att du måste ändra kolumnnumret i den här cellen till ett som är lämpligt för din datauppsättning. Till exempel, om din tabell börjar på kolumn J, måste du ändra satsen i steg 2 till Cells(Rows.Count, 10).End(xlUp).Row eftersom kolumn J är den tionde kolumnen i kalkylbladet.
I steg 3 definierar du det totala radintervallet för dina data. Tänk på att radintervallet måste börja med den första raden med data (exklusive rubriker) och slutar med den sista icke-tomma raden. I det här fallet börjar din datauppsättning på rad 6, så du använder sorteringsmetoden på rader(“6:” & LastRow).
Nyckelargumentet talar om för Excel vilket intervall som ska sorteras på. Återigen vill du se till att intervallet du använder börjar med den första raden med data (exklusive rubrikerna).
Hur man använder makrot
För att implementera detta makro måste du kopiera och klistra in det i fönstret Worksheet_BeforeDoubleClick händelsekod. Genom att placera makrot här kan det köras varje gång du dubbelklickar på arket:
Aktivera Visual Basic Editor genom att trycka ALT+F11.
I projektfönstret letar du upp ditt projekt-/arbetsboksnamn och klickar på plustecknet bredvid det för att se alla ark.
Klicka på arket från vilket du vill aktivera koden.
Välj händelsen BeforeDoubleClick i listrutan Händelse.
Skriv eller klistra in koden.