VBA XLUP | Hvordan bruker jeg VBA XLUP i Excel? (med eksempler)

Excel VBA XLUP

En ting du må huske på mens du skriver VBA-kode, er hva du gjør med det vanlige regnearket, og du kan også replikere det samme i VBA. Et slikt nøkkelord i VBA-koding er "XLUP", i denne artikkelen vil vi vise deg hva dette nøkkelordet er i VBA-koding og hvordan du bruker det til koding.

Hvordan bruke VBA XLUP i koding?

Følgende er eksemplene på excel VBA XLUP.

Du kan laste ned denne VBA XLUP Excel-malen her - VBA XLUP Excel-mal

Eksempel 1 - Flytt celler til slettet posisjon av celler

Se for eksempel på scenariet for dataene nedenfor, der du trenger å slette de fargede celledataene og mer opp dataene under radene til dataene ovenfor.

En måte å slette dette i regnearket er å velge cellene der vi bare kan slette hele raden selv. Men her er situasjoner lite vanskelige fordi jeg har fargede celler i tabell 1 når vi sletter hele raden, selv tabell 2-rader blir også slettet, men vi vil ikke at dette skal skje i stedet, vi trenger bare å slette fargede rader, og under celler skal bevege opp posisjonen til de slettede cellene.

Velg først de fargede cellene og trykk Ctrl + minus-symbolet (-) for å åpne alternativet "Slett".

Hurtigtast for å åpne alternativet "Slett"

I “slett” -alternativvinduet har vi fire alternativer, vi kan velge handlingen i henhold til vårt krav. Siden vi trenger å flytte cellene opp for de slettede cellene, velger du "Skift celle opp".

Vi har uendrede tabell 2-rader.

Denne handlingen i VBA krever bruk av "XLUP" -egenskapen for å utføre et lignende sett med handlinger i VBA. Nå kommer til vinduet til VBA-editoren og starter makronavnet ditt.

Kode:

 Sub XLUP_Example () Slutt Sub 

Tilfør først cellen RANGE som skal inkluderes i denne operasjonen. I denne handlingen er de første cellene som blir slettet og beveger seg opp “A5: B5” -celler.

Kode:

 Sub XLUP_Example () Range ("A5: B5") End Sub 

Velg "Slett" -metoden for dette celleområdet.

Kode:

 Sub XLUP_Example () Range ("A5: B5"). Slett End Sub 

Som du kan se for "Slett" -metoden, har vi ett valgfritt argument som [Skift], for dette argumentet må vi legge inn argumentet som "XLUP".

Kode:

 Sub XLUP_Example () Range ("A5: B5"). Delete shift: = xlUp End Sub 

Nå kan du kjøre denne koden manuelt eller gjennom hurtigtast F5 for å se resultatet.

Som du kan se i tabell 1 har vi rad nummer 6 flyttet opp til 5. rad, og på den annen side er tabell 2 rad (farget) uendret, så ved å bruke alternativet “VBA XLUP” kan vi gjøre denne operasjonen.

Eksempel 2 - Finn sist brukte rad ved å bruke XLUP

Tenk deg en situasjon der du befinner deg i A20-cellen (se bildet nedenfor) og den sist brukte cellen din er A14.

Nå hvis du vil velge den sist brukte cellen (A14). hvordan vil du gjøre det ved å bruke en hurtigtast ???

Vi bruker Ctrl + pil opp for å flytte til den sist brukte cellen fra gjeldende posisjon.

Hurtigtast for å flytte til sist brukte celle 

Så fra den nåværende cellen valgte Ctrl + pil opp den sist brukte cellen. På samme måte bruker vi VD- koding END (XLUP) for å utføre det samme.

Nå kommer du tilbake til VBA-kodingsvinduet.

In this window, we will perform the task of finding the last used row in the worksheet. Create a new subprocedure in the VBA window.

Code:

 Sub XLUP_Example1() End Sub 

To store the last used row number. define the variable as the VBA LONG data type.

Code:

 Sub XLUP_Example1() Dim Last_Row_Number As Long End Sub 

Now for this variable, we will assign the last used row number.

Code:

 Sub XLUP_Example1() Dim Last_Row_Number As Long Last_Row_Number = End Sub 

Now use RANGE object and open this object.

Code:

 Sub XLUP_Example1() Dim Last_Row_Number As Long Last_Row_Number = Range( End Sub 

Now mention the active cell (A20) for RANGE object.

Code:

 Sub XLUP_Example1() Dim Last_Row_Number As Long Range("A14").Select Last_Row_Number = Range("A20") End Sub 

Now open END property for supplied range cell.

Code:

 Sub XLUP_Example1() Dim Last_Row_Number As Long Range("A14").Select Last_Row_Number = Range("A20").End( End Sub 

As you can see above, we have to arrow key options like “xlDown”, “xlToLeft”, “xlToRight”, “xlUp”. Since we are moving up from the A14 cell choose the “VBA XLUP” option.

Code:

 Sub XLUP_Example1() Dim Last_Row_Number As Long Range("A14").Select Last_Row_Number = Range("A20").End(xlUp) End Sub 

After moving up from A14 cell we need to mention what we need to do since we need the last used row number I will use ROW property.

Code:

 Sub XLUP_Example1() Dim Last_Row_Number As Long Range("A14").Select Last_Row_Number = Range("A20").End(xlUp).Row End Sub 

Now for the message box assign the value of variable “Last_Row_Number”.

Code:

 Sub XLUP_Example1()  Dim Last_Row_Number As Long Range("A14").Select Last_Row_Number = Range("A20").End(xlUp).Row MsgBox Last_Row_Number End Sub 

Now you can run this code manually or through shortcut key F5, to see the result.

So message box showing the last used row number as 14, so our last data used row number is A14 cell.

In this case, since data is very small we started from A20 cell but when the data is large we cannot say which cell to take into consideration first, in such cases we need to employ a different technique.

We need to use CELLS property, below is the example of the same.

Code:

 Sub XLUP_Example2() Dim Last_Row_Number As Long Last_Row_Number = Cells(Rows.Count, 1).End(xlUp).Row MsgBox Last_Row_Number End Sub 

Now you can run this code manually or through shortcut key F5, to see the result.

Instead of a RANGE object, I have used CELLS property. Let me explain this in detail to you.

ROW.COUNT this will count how many rows are there in column 1. What this will do is it will take into consideration of the last cell in the worksheet instead of random cell address, in the above case we have used A14 as the random cell address.

Things to Remember about VBA XLUP

  • XLUP is the word used in VBA code to replicate the action of the “Up Arrow” key in excel.
  • VBA XLUP is used to move from active cells to the above cell or last used cell.
  • XLUP is generally used along with END property in VBA.