VBA nuvarande region

Denna handledning kommer att förklara hur du använder Current Region i VBA.

De CurrentRegion egenskap i VBA är ett sätt att välja alla celler som finns inom ett intervall som du kanske vill arbeta med. Så länge cellerna inom intervallet är i följd eller "vidrör" varandra, kommer CurrentRegion kommer att välja varje cell i regionen.

CurrentRegion Syntax

Syntaxen är väldigt enkelt:

1 Område ("E11"). CurrentRegion.Select

där du skulle ange cellen vars nuvarande region du ville välja och sedan använda CurrentRegion.Select egenskap för att välja cellintervall.

Skaffa den aktuella regionen

Tänk på följande kalkylblad.

följande delprocedur skulle välja alla celler i databasen

1234567 Sub FindCurrentRegion ()Dim rng As Range'ställ in intervallet till Cell E11Ställ in rng = Range ("E11")'välj den aktuella regionenrng.CurrentRegion.SelectAvsluta Sub

Om vi ​​kör rutinen, alla celler i CurrentRegion av cell E11 kommer att väljas.

Om vi ​​tar bort innehållet i de angränsande cellerna och kör rutinen igen kommer följande att väljas som den aktuella regionen.

Men om vi tar bort ännu mer data kan vi sluta med exemplet nedan för den aktuella regionen i cell E11.

När vi lägger in information till D13 slutar vi med följande:

De CurrentRegion returnerar därför en annan räckvidd objekt som definieras av den minsta kombinationen av ockuperade kolumner och rader som omger det område du har tillhandahållit.

Räkna rader och kolumner i den aktuella regionen

Vi kan använda CurrentRegion att räkna rader och kolumner.

12345678910111213 Sub FindCurrentRegion ()Dim rng As RangeDim iRw som heltalDim iCol som heltal'ställ in intervalletStäll in rng = Range ("E11")'räkna radernaiRw = rng.CurrentRegion.Rows.Count'räkna kolumnernaiCol = rng.CurrentRegion.Columns.Count'visa resultatet i en meddelanderutaMsgBox ("Vi har" & iRw & "rader och" & iCol & "kolumner i vår nuvarande region")Avsluta Sub

Om vi ​​kör proceduren visas följande meddelanderuta.

Rensa den aktuella regionen

Vi kan också använda den aktuella regionegenskapen för att rensa cellintervallet.

123456 Sub ClearCurrentRegion ()Dim rng As Range'ställ in intervalletStäll in rng = Range ("E11")rng.CurrentRegion.ClearAvsluta Sub

Tilldela en variabel den aktuella regionen

Vi kan också tilldela hela den aktuella regionen till en intervallvariabel och sedan använda den intervallvariabeln för att manipulera cellerna - oavsett om det formaterar cellerna, sorterar cellerna osv …

12345678910 Sub AssignCurrentRegionToVariable ()Dim rng As Range'ställ in intervallet för att vara den aktuella regionen för E11Ställ in rng = Range ("E11"). CurrentRegion'färg bakgrunden och textenrng.Interior.Pattern = xlSolidrng.Interior.Color = 65535rng.Font.Bold = Santrng.Font.Color = -16776961Avsluta Sub

Om vi ​​kör proceduren ovan kommer vi att få ett kalkylblad som visas nedan!

Få start- och slutcellerna i den aktuella regionen

Med lite mer komplicerad kod kan vi få den första cellen och den sista cellen i en aktuell region.

123456789101112131415161718 Sub GetStartAndEndCells ()Dim rng As RangeDim iRw som heltalDim iCol som heltalDim iColStart, iColEnd, iRwStart, iRwEnd som sträng'ställ in intervallvariabeln för att vara den aktuella regionen för E11Ställ in rng = Range ("E11"). CurrentRegion'ställ in startkolumnen för intervalletiColStart = rng.Column'få slutkolumnen för intervalletiColEnd = iColStart + (rng.Columns.Count - 1)'få startraden för intervalletiRwStart = rng.Row'få slutraden för intervalletiRwEnd = iRwStart + (rng.Rows.Count - 1)'visa adressen till start- och slutraderna och kolumnerna i en meddelanderutaMsgBox ("Intervallet börjar vid" & Celler (iRwStart, iColStart). Adress & "och slutar med" & Celler (iRwEnd, iColEnd) .Adress)Avsluta Sub

När vi kör koden ovan visas följande meddelanderuta

wave wave wave wave wave