VBA XLUP

Excel VBA XLUP

En sak du måste tänka på när du skriver VBA-kod är vad du gör med det vanliga kalkylbladet och du kan också replikera samma sak i VBA. Ett sådant nyckelord i VBA-kodning är "XLUP", i den här artikeln visar vi vad detta nyckelord är i VBA-kodning och hur man använder det vid kodning.

Hur använder jag VBA XLUP i kodning?

Följande är exempel på excel VBA XLUP.

Du kan ladda ner denna VBA XLUP Excel-mall här - VBA XLUP Excel-mall

Exempel nr 1 - Flytta celler till borttagen position av celler

Titta till exempel på scenariot för nedanstående data, där du måste ta bort dessa färgade celldata och mer upp nedanstående rader till ovanstående data.

Ett sätt att ta bort detta i kalkylbladet är att välja de celler där vi helt enkelt kan ta bort hela raden i sig. Men här är situationer lite knepiga eftersom jag har färgade celler i tabell 1 när vi tar bort hela raden även tabell 2-rader tas också bort, men vi vill inte att detta ska ske istället behöver vi bara ta bort färgade rader och nedanför celler ska flyttas upp positionen för de raderade cellerna.

Välj först de färgade cellerna och tryck på Ctrl + Minus-symbolen (-) för att öppna alternativet "Radera".

Genväg för att öppna alternativet "Ta bort"

I fönstret "ta bort" har vi fyra alternativ, vi kan välja åtgärden enligt våra krav. Eftersom vi behöver flytta upp våra celler för de borttagna cellerna, välj "Skift cell upp".

Vi har oförändrade tabell 2-rader.

Denna åtgärd i VBA kräver användning av "XLUP" -egenskapen för att utföra en liknande uppsättning åtgärder i VBA. Kom nu till fönstret i VBA-redigeraren och starta ditt makronamn.

Koda:

 Sub XLUP_Example () Slut Sub 

Först ange cellen RANGE som ska ingå i denna operation. I denna åtgärd är de första cellerna som raderas och flyttas upp "A5: B5" -celler.

Koda:

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

Välj "Radera" -metoden för detta cellområde.

Koda:

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

Som du kan se för "Radera" -metoden har vi ett valfritt argument som [Skift], för detta argument måste vi ange argumentet som "XLUP".

Koda:

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

Nu kan du köra den här koden manuellt eller genom snabbtangenten excel-tangent F5 för att se resultatet.

Som du kan se i tabell 1 har vi rad nummer 6 flyttat upp till 5: e raden och å andra sidan är tabell 2 rad (färgad) oförändrad, så genom att använda alternativet "VBA XLUP" kan vi göra denna operation.

Exempel # 2 - Hitta senast använda rad med XLUP

Föreställ dig en situation där du befinner dig i A20: e cellen (se bilden nedan) och din senast använda cell är A14.

Om du nu vill välja den senast använda cellen (A14). hur kommer du att göra med en genväg ???

Vi skulle använda Ctrl + Pil upp för att flytta till den senast använda cellen från den aktuella positionen.

Genvägsknapp för att flytta till den senast använda cellen 

Så, från den aktuella cellen markerade Ctrl + uppåtpilen den senast använda cellen. På samma sätt i VBA-kodning använder vi END (XLUP) för att utföra detsamma.

Kom nu tillbaka till VBA-kodningsfönstret.

I det här fönstret utför vi uppgiften att hitta den senast använda raden i kalkylbladet. Skapa en ny delprocedur i VBA-fönstret.

Koda:

 Sub XLUP_Exempel1 () Avsluta sub 

För att lagra det senast använda radnumret. definiera variabeln som VBA LONG-datatyp.

Koda:

 Sub XLUP_Example1 () Dim Last_Row_Number Som Long End Sub 

Nu för denna variabel tilldelar vi det senast använda radnumret.

Koda:

 Sub XLUP_Example1 () Dim Last_Row_Number As Long Last_Row_Number = Avsluta sub 

Använd nu RANGE-objekt och öppna det här objektet.

Koda:

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

Nämn nu den aktiva cellen (A20) för RANGE- objekt.

Koda:

 Sub XLUP_Example1 () Dimma Last_Row_Number As Long Range ("A14"). Välj Last_Row_Number = Range ("A20") End Sub 

Öppna nu END-egenskapen för levererad intervallcell.

Koda:

 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.