Först publicerad: 2009-05-18

Hitta kalkylbladets sista använda rad

sista-radenEn bra basfunktion att ha till hands vid makroprogrammering i Excel VBA är en rutin för att finna den sista använda raden i en kolumn.

Ofta behöver du veta vilken rad som är den sista i en matris för att på det sättet kunna göra något med detta cellområde, t ex applicera ett format, kopiera, lägga till en formel i kolumnen bredvid, med mycket mera.

I vissa fall kan man i och för sig låta sitt VBA-program använda sig av hela kolumnen, dvs ända ned till rad 65.536, men betänk då att vi slösar med kapacitet i onödan, vilket kan göra att körningen av makrot tar längre tid. Men i vissa andra fall så funkar inte ens detta, utan vi måste helt enkelt ha reda på den sista raden. Ett exempel kan vara ett makro som importerar data från en annan fil (med okänt antal rader) och sedan lägger ut en kolumnsumma längst ned i varje kolumn. I det fallet så måste vi helt enkelt ta reda på vilken som är den sist använda raden.

VBA-kod som återger den sista använda raden i en kolumn

Makrokoden nedan läser in den sist använda raden i kolumn A till en variabel:

intSistarad = Columns("A:A").Range("A65536").End(xlUp).Row

För att få fram den första “lediga” raden i kolumn A så måste vi öka upp värdet med 1:

intSistarad = intSistarad + 1

I mina egna VBA-program så använder jag mig av den här funktionen väldigt ofta, och det är en användbar rutin som är bra att ha tillhands.

Slutligen kan tilläggas att du även kan få fram den sista använda raden genom att loopa igenom kolumnens celler, ett tillvägagångssätt som kommer att ge samma resultat men som är mer resurskrävande samt kräver fler programmeringsrader än den enkla raden med kod som jag beskrivit ovan.