VBA UsedRange - Hur hittar jag antalet använda rader och kolumner?

Innehållsförteckning

UsedRange, som namnet antyder, är de intervall som, som någon form av värden i dem, de tomma cellerna inte ingår i de använda områdena, så i VBA Använda områden är egenskapen för intervallobjektet i VBA för de cellerna i rader och kolumner som inte är tomma och har några värden i sig.

UsedRange i VBA Excel

UsedRange i VBA är en egenskap hos kalkylbladet som returnerar ett intervallobjekt som representerar det använda intervallet (alla Excel-celler som används eller fylls i ett kalkylblad) på ett visst kalkylblad. Det är en egenskap som representerar det område som täcks eller avgränsas av celler som används längst upp till vänster och celler som används till sist till höger i ett kalkylblad.

Vi kan beskriva "Begagnad cell" som en cell som innehåller vilken formel som helst, formatering, värde etc. Vi kan också välja den senast använda cellen genom att trycka på CTRL + END-tangenterna på tangentbordet.

Följande är en illustration av en UsedRange i ett kalkylblad:

Vi kan se i ovanstående skärmdump att UsedRange är A1: D5.

Exempel på Excel VBA UsedRange Property

Låt oss titta på några exempel nedan för att se hur egenskapen UsedRange i ett kalkylblad kan användas för att hitta det använda området i VBA:

Exempel 1

Låt oss säga att vi har en Excel-fil som innehåller två kalkylblad, och vi vill hitta och välja det använda intervallet på Sheet1.

Låt oss se vad Sheet1 innehåller:

Vi använder egenskapen UsedRange i fönstret VBA Immediate för att utföra denna uppgift. VBA omedelbart fönster är ett verktyg som hjälper till att få information om Excel-filer, snabbt köra eller felsöka någon VBA-kod, även om användaren inte skriver några makron. Den finns i Visual Basic Editor och kan nås på följande sätt:

  • Gå till fliken Utvecklare Excel och klicka sedan på Visual Basic Editor, eller tryck på Alt + F11 för att öppna Visual Basic Editor-fönstret.

När du gör detta öppnas ett fönster enligt följande:

  • Tryck på Ctrl + G för att öppna det omedelbara fönstret och skriv in koden.

Det omedelbara fönstret ser ut som:

  • Följande kod väljer det använda intervallet på Sheet1.

Koda:

? Arbetsblad ("Sheet1"). Aktivera True? ActiveSheet.UsedRange.Select True

Det första uttalandet för koden aktiverar ark 1 i filen och det andra uttalandet väljer det använda området i det aktiva arket.

När vi skriver den här koden ser vi att intervallet som används i Sheet1 blir valt enligt följande:

Exempel 2

Låt oss säga i det här exemplet att vi vill hitta det totala antalet rader som används i blad 1. För att göra detta följer vi stegen nedan:

  • Skapa ett makronamn i modulen.

Koda:

Sub TotalRows () Slut Sub
  • Definiera variabeln TotalRow som heltal i VBA:

Koda:

Sub TotalRows () Dim TotalRow som Integer End Sub
  • Tilldela nu variabeln TotalRow med formeln för att beräkna ett totalt antal rader:

Koda:

Sub TotalRows () Dim TotalRow Som Integer TotalRow = ActiveSheet.UsedRange.Rows.Count End Sub
  • Nu kan det resulterande värdet av TotalRow visas och returneras med en VBA-meddelanderuta (MsgBox) enligt följande:

Koda:

Sub TotalRows () Dim TotalRow Som Integer TotalRow = ActiveSheet.UsedRange.Rows.Count MsgBox TotalRow End Sub
  • Nu kör vi den här koden manuellt eller genom att trycka på F5, och vi får det totala antalet rader som används i Sheet1 som visas i en meddelandefält enligt följande:

Så vi kan se i ovanstående skärmdump att '5' returneras i meddelandefältet, och som vi kan se i Sheet1 är det totala antalet rader i det använda intervallet 5.

Exempel # 3

På samma sätt, om vi vill hitta det totala antalet kolumner som används i Sheet1, kommer vi att följa samma steg som ovan förutom en liten förändring av koden enligt följande:

Koda:

Sub TotalCols () Dim TotalCol som heltal TotalCol = ActiveSheet.UsedRange.Columns.Count MsgBox TotalCol End Sub

Nu när vi kör den här koden manuellt eller genom att trycka på F5 får vi det totala antalet kolumner som används i Sheet1 visas i en meddelandefält enligt följande:

Så, "4" returneras i meddelandefältet, och som vi kan se i Sheet1 är det totala antalet kolumner i det använda intervallet 4.

Exempel 4

Låt oss säga att vi vill hitta den senast använda raden och kolumnnumret i ark 2 i filen. Låt oss se vad Sheet2 innehåller:

För att göra detta följer vi stegen nedan:

  • Skapa ett makronamn i modulen.

Koda:

Sub LastRow () End Sub
  • Definiera variabeln LastRow som heltal.

Koda:

Sub LastRow () Dim LastRow Som Integer End Sub
  • Tilldela nu variabeln LastRow med formeln för att beräkna det senast använda radnumret:

Koda:

Sub LastRow () Dim LastRow As Integer LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Row End Sub

Specialcells-metoden i Excel VBA returnerar ett intervallobjekt som endast representerar de angivna cellerna. Syntaksen för SpecialCells-metoden är:

RangeObject.SpecialCells (typ, värde)

I ovanstående kod representerar xlCellTypeLastCell: den sista cellen i det använda intervallet.

Obs: 'xlCellType' kommer även att innehålla tomma celler som har ändrat standardformatet för någon av deras celler.
  • Nu kan det resulterande värdet på LastRow-nummer visas och returneras med en meddelandefält (MsgBox) enligt följande:

Koda:

Sub LastRow () Dim LastRow As Integer LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Row MsgBox LastRow End Sub
  • Nu kör vi den här koden manuellt eller genom att trycka på F5, och vi får det senast använda radnumret i Sheet2 som visas i en meddelandefält enligt följande:

Så vi kan se i skärmdumpen ovan att '12' returneras i meddelandefältet, och som vi kan se i Sheet2 är det senast använda radnumret 12.

På samma sätt, om vi vill hitta det senast använda kolumnnumret i Sheet2, kommer vi att följa samma steg som ovan med undantag för en liten ändring av koden enligt följande:

Koda:

Sub LastCol () Dim LastCol As Integer LastCol = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell). Kolumn MsgBox LastCol End Sub

Nu när vi kör den här koden manuellt eller genom att trycka på F5 får vi det senast använda kolumnnumret i Sheet2 som visas i en meddelandefält enligt följande:

Så vi kan se i ovanstående skärmdump att '3' returneras i meddelandefältet, och som vi kan se i Sheet2 är det senast använda kolumnnumret 3.

Saker att komma ihåg om VBA UsedRange

  • VBA UsedRange är ett rektangelområde.
  • VBA UsedRange inkluderar celler som har data eller formaterats etc.
  • Excel VBA UsedRange inkluderar inte nödvändigtvis den övre vänstra cellen i kalkylbladet.
  • UsedRange anser inte nödvändigtvis att den aktiva cellen används.
  • UsedRange kan användas för att hitta den senast använda raden i VBA och för att återställa det använda intervallet etc.
  • Att trycka på Excel-tangenterna CTRL + SHIFT + ENTER på ett tangentbord kan användas för att utöka markeringen från en aktiv cell till den senast använda cellen i ett kalkylblad.

Intressanta artiklar...