Automatisk ifyllningsformel till sista raden med Excel VBA (5 exempel)

  • Dela Detta
Hugh West

Om du har arbetat med Microsoft Excel ett tag vet du hur viktigt det är med AutoFill. För att kopiera en formel över raden eller kolumnen använder vi den här metoden. Nu kan vi använda detta manuellt med musen. Men om du har en stor rad med data blir det svårt att kopiera en formel till den sista raden eller kolumnen. Du kan använda VBA-koden för att AutoFill en formel till den sista raden eller kolumnen medlätthet.

I den här handledningen kommer du att lära dig att automatiskt fylla i en formel i den sista raden i Excel med hjälp av VBA-koder. Den här handledningen kommer att vara exakt med lämpliga exempel och korrekta illustrationer. Så stanna kvar hos oss.

Ladda ner övningsboken

Autofyllningsformel till sista raden.xlsm

Vad är automatisk ifyllning i Excel?

Automatisk ifyllning är en inbyggd funktion i Microsoft Excel som gör det möjligt för användare att automatiskt fylla resten av raderna eller kolumnerna med värden, format eller formler. Du kan identifiera den när du för markören till det nedre högra hörnet av en cell. Vi kallar den för Excel:s automatiska ifyllningshanterare.

Ta en titt på följande skärmdump:

Här kan du se två siffror. Vi fyller resten av raderna med hjälp av Excel:s automatiska ifyllning.

Välj först området med cellerna B5:B6. Därefter ser du autofyllningshandtaget i det nedre högra hörnet.

Dra nu det här handtaget för automatisk ifyllning nedåt.

Som du kan se fyllde Excel automatiskt resten av cellerna. Detta är den grundläggande användningen av automatisk ifyllning i Excel.

Hur man använder AutoFill med Excel VBA

Om du har ett stort antal rader eller kolumner i ett visst intervall måste du dra ner autofyllningshandtaget till den sista raden eller kolumnen. Det är en mycket hektisk process. Tack och lov kan du minimera den med hjälp av VBA-koder i Excel. Du kan använda VBA-koden för att autofylla cellerna med värden, formler eller format.

Den generiska syntaxen:

Range.AutoFill Destination, Typ

Här,

Range("B5"): Den cell som har huvudmönstret för att fylla resten av serien.

Destination: Räckvidd av celler som du vill fylla med mönsterserien.

Typ som xlAutoFillType: Typ av seriefyllning. Det finns olika typer av automatisk fyllning som du kan välja.

Läs mer: Hur man använder VBA AutoFill i Excel

4 typer av automatisk ifyllning i Excel VBA

I det här avsnittet kommer jag att diskutera några av de olika typerna av autofyllning. Vi har redan sett att vi kan välja vilken typ av autofyllning som helst med hjälp av xlAutoFillType. Här visar jag några exempel på detta.

1. xlFillDefault

Vi har redan sett den här typen av automatisk ifyllning i det föregående exemplet.

Ta en titt på skärmbilden:

Skriv följande VBA-kod för att fylla ut resten av cellerna automatiskt:

 Sub xlDefault_type() Range("B5:B6").AutoFill Destination:=Range("B5:B11"), Type:=xlFillDefault End Sub 

Kör nu VBA-makrot och efter det kommer du att se följande:

Resten av cellerna fylls automatiskt i med hjälp av ett VBA-makro.

2. xlFillCopy

För att kopiera samma värden kan du använda typen xlFillCopy i typen för automatisk ifyllning.

Ta en titt på skärmbilden:

Skriv följande VBA-kod för att fylla ut resten av cellerna automatiskt:

 Sub xlFillCopy_type() Range("B5:B6").AutoFill Destination:=Range("B5:B11"), Type:=xlFillCopy End Sub 

Kör nu VBA-makrot och efter det kommer du att se följande:

Excel fyller resten av cellerna med samma mönster av värden.

3. xlFillMonths

Du kan också fylla i månader med hjälp av xlFillMonths typ av automatisk ifyllning.

Ta en titt på skärmbilden:

Här har vi angett två månader, januari och februari.

Skriv följande VBA-kod för att fylla ut resten av cellerna automatiskt:

 Sub xlFillMonths_type() Range("B5:B6").AutoFill Destination:=Range("B5:B11"), Type:=xlFillMonths End Sub 

Kör nu VBA-makrot och efter det kommer du att se följande:

Excel förstår automatiskt mönstren och fyller dem med dem.

4. xlFillFormats

Du kan också kopiera format till andra celler med hjälp av VBA-autofyllning. För detta måste du använda xlFillFormats typ av automatisk ifyllning.

Ta en titt på skärmbilden:

Här har vi fyllt de två cellerna med några färger.

Skriv nu följande VBA-kod för att fylla ut resten av cellerna automatiskt:

 Sub xlFillFormats_type() Range("B5:B6").AutoFill Destination:=Range("B5:B11"), Type:=xlFillFormats End Sub 

Kör nu VBA-makrot och efter det kommer du att se följande:

Som du kan se använder vårt VBA-makro autofyllning för att fylla raderna i kolumn B på ett effektivt sätt.

Läs mer: Hur man fyller ut månader automatiskt i Excel

5 exempel med AutoFill Formula till sista raden i Excel VBA

1. VBA för att automatiskt fylla i en formel till den senast använda raden

På samma sätt kan du fylla ut en formel automatiskt med hjälp av VBA.Om du har läst de tidigare avsnitten kan du enkelt utföra detta. Problemet uppstår när du måste fylla ut formeln automatiskt till den sista raden. Du måste först identifiera den senast använda raden. Därefter kommer VBA-koden att fylla ut dem automatiskt.

Ta en titt på följande dataset:

Här har vi ett dataset med försäljningsuppgifter för några säljare. Vårt mål är att lägga till försäljningen för januari och februari i kolumnen Total. Därefter kommer vi att använda autofyllningsmetoden med hjälp av VBA till den senast använda raden i Excel.

För att utföra detta skriver du följande kod:

 Sub last_used_row() Dim last_row As Long last_row = Cells(Rows.Count, 2).End(xlUp).Row Range("E5").Formula = "=SUM(C5:D5)" Range("E5").AutoFill Destination:=Range("E5:E" & last_row) End Sub 

last_row = Cells(Rows.Count, 2).End(xlUp).Row: Den returnerar den senast använda raden från kolumn B. Du kan välja vilken kolumn som helst från ditt dataset.

Range("E5").Formula = "=SUM(C5:D5)": Vi lägger till försäljningen av Cell C5 och D5.

Range("E5").AutoFill Destination:=Range("E5:E" & last_row): När vi har fått resultatet använder vi autofyllningen. Den börjar automatiskt fylla i från Cell E5 till den senast använda raden som vi fick tidigare.

Kör nu VBA-makrot. Efter det kommer du att se följande utdata:

Som du kan se lägger vår VBA-kod till det första resultatet och autofyller formeln till den sista raden i Excel.

Läs mer: Hur du fyller den sista raden med data i Excel

2. VBA AutoFill från ActiveCell till sista raden

Om du inte vill använda ett visst intervall i autofyllningsmetoden kan du använda den aktiva cellens värden, formler eller format. När du klickar på en cell och vill autofylla resten av raderna med den aktiva cellens formel använder du den här metoden.

Det liknar det föregående exemplet, och vi använder det tidigare datasetet:

Nu ska vi lägga till försäljningen i januari och februari och automatiskt fylla i formeln på sista raden med hjälp av Excel VBA.

Skriv nu följande kod:

 Sub autofill_active_cell() Dim last_row As Long last_row = Cells(Rows.Count, 2).End(xlUp).Row ActiveCell.Formula = "=SUM(C5:D5)" ActiveCell.AutoFill Destination:=Range(ActiveCell.Address & ":E" & last_row) End Sub 

last_row = Cells(Rows.Count, 2).End(xlUp).Row: Den returnerar den senast använda raden från kolumn B. Du kan välja vilken kolumn som helst från ditt dataset.

ActiveCell.Formula = "=SUM(C5:D5)": Vi lägger till försäljningen av Cell C5 och D5 i den valda cellen.

ActiveCell.AutoFill Destination:=Range(ActiveCell.Address & ":E" & last_row): När vi har fått resultatet använder vi autofyllning och börjar fylla ut automatiskt från den aktiva cellen till den senast använda raden som vi fick tidigare.

Välj nu Cell E5 .

Kör sedan VBA-makrot för att lägga till formeln och automatisk ifyllning på den sista raden.

Som du kan se har vi lyckats använda VBA-makrot för att automatiskt fylla i formeln till den sista raden.

Liknande läsningar

  • Upprepa rader ett angivet antal gånger i Excel (4 sätt)
  • Numera rader automatiskt i Excel (8 metoder)
  • Hur du fyller kolumnen i Excel med samma värde (9 knep)
  • Använd genväg för automatisk ifyllning i Excel (7 metoder)

3. Automatisk fyllning till sista raden med dynamiskt intervall med Excel VBA

Tidigare har vi visat några VBA-makron för att automatiskt fylla i sista raden i Excel. I de exemplen använde vi redan dynamiska intervall.

För att förstå statiska områden kan du titta på följande kod:

 Sub last_used_row() Range("E5").Formula = "=SUM(C5:D5)" Range("E5").AutoFill Destination:=Range("E5:E11") End Sub 

Vi har i princip sagt till Excel att ange en formel i Cell E5 och fylla i den automatiskt från Cell E5 till Cell E11 Här har vi angett intervallet. Vad händer om du lägger till fler rader? I så fall fyller vår VBA inte automatiskt i de extra raderna eftersom vi redan har sagt att den ska fylla i ett visst intervall.

För att lösa detta problem har jag tagit fram en lösning som kan ta ett dynamiskt område:

 Sub last_used_row() Dim last_row As Long last_row = Cells(Rows.Count, 2).End(xlUp).Row Range("E5").Formula = "=SUM(C5:D5)" Range("E5").AutoFill Destination:=Range("E5:E" & last_row) End Sub 

Som du kan se hittar vi först den sista raden med hjälp av denna kodrad:

 last_row = Cells(Rows.Count, 2).End(xlUp).Row 

Därefter fyller vi automatiskt i den sista raden med hjälp av det dynamiska området:

 Range("E5").AutoFill Destination:=Range("E5:E" & last_row) 

Oavsett hur många rader du lägger till i ditt dataset kommer den här VBA-koden att lyckas identifiera dem och fylla dem automatiskt med formeln.

Dynamiskt intervall innebär i princip att du inte behöver ange intervallet manuellt. Excel uppdaterar det från tid till annan.

Läs mer: Excel VBA: Autofyllningsmetoden för Range Class misslyckades

4. Automatisk fyllning till sista kolumnen i Excel med VBA

Om du har läst de tidigare avsnitten om automatisk ifyllning till sista raden kan du enkelt fylla i den sista kolumnen. Du behöver bara hitta det sista kolumnnumret och fylla i det med Excel VBA.

Ta en titt på följande dataset:

Här har vi ett dataset som representerar en persons budget för tre månader. Nu ska vi lägga till utgifterna för alla månader och automatiskt fylla i formeln i den sista kolumnen med hjälp av Excel VBA.

Skriv nu följande kod:

 Sub last_used_column() Dim last_row As Long last_column = Cells(6, Columns.Count).End(xlToLeft).Column Range("D9").Formula = "=SUM(D6:D8)" Range("D9").AutoFill Destination:=Range("D9", Cells(9, last_column)) End Sub 

last_column = Cells(6, Columns.Count).End(xlToLeft).Column: Den returnerar den senast använda kolumnen från rad 6. Du kan välja vilken rad som helst att börja med i ditt dataset.

Range("D9").Formula = "=SUM(D6:D8)": Vi lägger till kostnaderna för tre månader (januari, februari, mars).

Range("D9").AutoFill Destination:=Range("D9", Cells(9, last_column)): När vi har fått resultatet använder vi autofyllning. Här är vår huvudrad rad nummer 9. Alla våra data kommer att finnas i denna rad. Den börjar fyllas i automatiskt från kolumnen D till den senast använda kolumnen som vi tidigare fick genom sista kolumnen .

När du har kört makrot kommer du att se följande utdata:

Som du kan se har vi lyckats använda VBA för att automatiskt fylla i formeln i den sista kolumnen i Excel.

Läs mer: Hur man fyller ut en kolumn automatiskt i Excel

5. Automatisk ifyllning av löpande nummer till sista raden i Excel med hjälp av VBA

Du kan också fylla i löpande nummer automatiskt med hjälp av autofyllning i VBA. Här måste du använda xlFillSeries Excel kommer att förstå mönstret och fylla i dem med det.

Ta en titt på följande skärmdump:

Här har vi några namn och vi vill ge dem ett ID i en följd. För att göra detta använder vi VBA autofyllning.

Automatisk ifyllning av sekventiella nummer med statisk räckvidd:

 Sub sequential_number_2() Range("C5").AutoFill Destination:=Range("C5:C11"), Type:=xlFillSeries End Sub 

När du har kört koden ser du resultatet:

Om du vill använda det dynamiska området använder du följande kod:

 Sub sequential_number_1() Dim last_row As Long last_row = Cells(Rows.Count, 2).End(xlUp).Row Range("C5").AutoFill Destination:=Range("C5:C" & last_row), Type:=xlFillSeries End Sub 

last_row = Cells(Rows.Count, 2).End(xlUp).Row: Den returnerar den senast använda raden från kolumn B.

Range("C5").AutoFill Destination:=Range("C5:C" & last_row), Type:=xlFillSeries: Den kommer att ha ID:et Cell C5 och automatiskt fylla i den senast använda raden i kolumnen C med hjälp av xlFillSeries ,

I båda fallen får du samma resultat:

Som du kan se har vi lyckats använda VBA-koden för att automatiskt fylla i löpande nummer i Excel.

Läs mer: Excel-formler för att fylla ut sekvensnummer och hoppa över dolda rader

💬 Saker att komma ihåg

Du kan stoppa autofyllningen på olika sätt om du inte vill ha det. .

Du kan inte fylla i flera rader och kolumner samtidigt. Gör det en efter en.

Slutsats

Avslutningsvis hoppas jag att den här handledningen har gett dig användbar kunskap för att automatiskt fylla i formeln till den sista raden med hjälp av VBA-koder. Vi rekommenderar att du lär dig och tillämpar alla dessa instruktioner på ditt dataset. Ladda ner övningsarbetsboken och prova dem själv. Du får också gärna ge feedback i kommentarsfältet. Din värdefulla feedback gör att vi fortsätter att skapa handledningar somdetta.

Glöm inte att besöka vår webbplats Exceldemy.com för olika Excel-relaterade problem och lösningar.

Fortsätt att lära dig nya metoder och fortsätt att växa!

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.