Automatinis formulės pildymas į paskutinę eilutę naudojant "Excel VBA" (5 pavyzdžiai)

  • Pasidalinti
Hugh West

Jei kurį laiką dirbate su "Microsoft Excel", žinote automatinio užpildymo svarbą. Norėdami nukopijuoti formulę per eilutę ar stulpelį, naudojame šį metodą. Dabar tai galime naudoti rankiniu būdu, naudodami pelę. Tačiau jei turite didelę eilutę su duomenimis, bus sunku nukopijuoti bet kokią formulę į paskutinę eilutę ar stulpelį. Galite naudoti VBA kodą, kad automatiškai užpildytumėte formulę į paskutinę eilutę ar stulpelį supaprastumas.

Šioje pamokoje išmoksite automatiškai užpildyti formulę į paskutinę "Excel" eilutę naudodami VBA kodus. Šioje pamokoje bus pateikti tinkami pavyzdžiai ir tinkamos iliustracijos. Taigi, būkite su mumis.

Atsisiųsti praktikos sąsiuvinį

Paskutinės eilutės automatinio užpildymo formulė.xlsm

Kas yra "Excel" automatinis pildymas?

Dabar automatinis užpildymas yra integruota "Microsoft Excel" funkcija, leidžianti naudotojams automatiškai užpildyti likusias eilutes ar stulpelius reikšmėmis, formatais ar formulėmis. Jį galite nustatyti, kai žymeklį nukeliate į dešinį apatinį bet kurios ląstelės kampą. Vadiname jį "Excel" automatinio užpildymo tvarkykle.

Pažvelkite į šią ekrano nuotrauką:

Čia matote du skaičius. Likusias eilutes užpildysime naudodami "Excel" automatinio užpildymo funkciją.

Pirmiausia pasirinkite ląstelių B5:B6 intervalą. Po to dešiniajame apatiniame kampe pamatysite automatinio užpildymo rankenėlę.

Dabar vilkite šią automatinio užpildymo rankenėlę žemyn.

Kaip matote, "Excel" automatiškai užpildė likusius langelius. Tai pagrindinis "Excel" automatinio užpildymo naudojimas.

Kaip naudoti automatinį užpildymą naudojant "Excel VBA

Jei tam tikrame intervale yra daug eilučių ar stulpelių, automatinio užpildymo rankenėlę turite nuvilkti iki paskutinės eilutės ar stulpelio. Tai labai įtemptas procesas. Laimei, galite jį sumažinti naudodami "Excel" VBA kodus. Galite naudoti VBA kodą, kad automatiškai užpildytumėte ląsteles reikšmėmis, formulėmis ar formatais.

Bendroji sintaksė:

Range.AutoFill Paskirtis, tipas

Čia,

Range("B5"): Ląstelė, kurioje yra pagrindinis modelis, kuriuo užpildoma likusi serijos dalis.

Kelionės tikslas: Ląstelių, kurias norite užpildyti modelio serijomis, diapazonas.

Tipas kaip xlAutoFillType: Serijos užpildymo tipas. Galima pasirinkti įvairius automatinio užpildymo tipus.

Skaityti daugiau: Kaip naudoti VBA automatinį užpildymą programoje "Excel

4 automatinio užpildymo tipai "Excel VBA" programoje

Šiame skyriuje aptarsiu kai kuriuos automatinio užpildymo tipus. Jau matėme, kad galime pasirinkti bet kurį automatinio užpildymo tipą naudodami xlAutoFillType. Čia pateikiu keletą pavyzdžių.

1. xlFillDefault

Ankstesniame pavyzdyje jau matėme tokio tipo automatinį užpildymą.

Pažvelkite į ekrano nuotrauką:

Įveskite šį VBA kodą, kad automatiškai užpildytumėte likusias ląsteles:

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

Dabar paleiskite VBA makrokomandą ir po to pamatysite:

Naudojant VBA makrokomandą automatiškai užpildomos likusios ląstelės.

2. xlFillCopy

Norėdami nukopijuoti tas pačias reikšmes, galite naudoti tipą xlFillCopy automatinio užpildymo tipą.

Pažvelkite į ekrano nuotrauką:

Įveskite šį VBA kodą, kad automatiškai užpildytumėte likusias ląsteles:

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

Dabar paleiskite VBA makrokomandą ir po to pamatysite:

"Excel" užpildo likusius langelius tuo pačiu verčių modeliu.

3. xlFillMonths

Taip pat galite užpildyti mėnesius naudodami xlFillMonths automatinio užpildymo tipas.

Pažvelkite į ekrano nuotrauką:

Čia įvesti du mėnesiai - sausis ir vasaris.

Įveskite šį VBA kodą, kad automatiškai užpildytumėte likusias ląsteles:

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

Dabar paleiskite VBA makrokomandą ir po to pamatysite:

"Excel" automatiškai supranta šablonus ir juos užpildo.

4. xlFillFormats

Taip pat galite kopijuoti formatus į kitas ląsteles naudodami VBA automatinio užpildymo funkciją. Tam turite naudoti xlFillFormats automatinio užpildymo tipas.

Pažvelkite į ekrano nuotrauką:

Čia du langelius užpildėme tam tikromis spalvomis.

Dabar įveskite šį VBA kodą, kad automatiškai užpildytumėte likusias ląsteles:

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

Dabar paleiskite VBA makrokomandą ir po to pamatysite:

Kaip matote, mūsų VBA makrokomandoje automatinis užpildymas naudojamas veiksmingai užpildyti B stulpelio eilutes.

Skaityti daugiau: Kaip automatiškai užpildyti mėnesius programoje "Excel

5 pavyzdžiai su automatinio užpildymo formule į paskutinę eilutę "Excel VBA" programoje

1. VBA automatiškai užpildyti formulę į paskutinę naudotą eilutę

Panašiai galite automatiškai užpildyti formulę naudodami VBA. jei perskaitėte ankstesnius skyrelius, tai lengvai atliksite. Problema iškyla, kai reikia automatiškai užpildyti formulę iki paskutinės eilutės. Pirmiausia turite nustatyti paskutinę naudotą eilutę. Po to VBA kodas jas automatiškai užpildys.

Pažvelkite į šį duomenų rinkinį:

Čia turime kelių pardavėjų pardavimų duomenų rinkinį. Mūsų tikslas - į stulpelį Iš viso įtraukti sausio ir vasario mėnesių pardavimus. Po to, naudodami VBA, pasinaudosime automatinio užpildymo metodu į paskutinę naudotą "Excel" eilutę.

Norėdami tai atlikti, įveskite šį 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: Jis grąžina paskutinę panaudotą eilutę iš stulpelio B. Galite pasirinkti bet kurį duomenų rinkinio stulpelį.

Range("E5").Formula = "=SUM(C5:D5)": Pridedame pardavimus Ląstelė C5 ir D5.

Range("E5").AutoFill Destination:=Range("E5:E" & last_row): Gavę rezultatą, naudojame automatinį užpildymą. E5 ląstelė į paskutinę naudotą eilutę, kurią gavome anksčiau.

Dabar paleiskite VBA makrokomandą. Po to pamatysite tokią išvestį:

Kaip matote, mūsų VBA kodas į paskutinę "Excel" eilutę įtraukia pirmąjį rezultatą ir automatiškai užpildo formulę.

Skaityti daugiau: Kaip užpildyti "Excel" duomenis iki paskutinės eilutės

2. VBA automatinis užpildymas iš "ActiveCell" į paskutinę eilutę

Dabar, jei nenorite naudoti konkretaus diapazono automatinio užpildymo metodu, galite naudoti aktyvios ląstelės reikšmes, formules arba formatus. Kai spustelėsite ląstelę ir norite automatiškai užpildyti likusias eilutes aktyvios ląstelės formule, naudokite šį metodą.

Jis panašus į ankstesnį pavyzdį. Naudojame ankstesnį duomenų rinkinį:

Dabar, naudodami "Excel" VBA, į paskutinę eilutę įrašysime sausio ir vasario mėnesių pardavimus ir automatiškai užpildysime formulę.

Dabar įveskite šį 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: Jis grąžina paskutinę panaudotą eilutę iš stulpelio B. Galite pasirinkti bet kurį duomenų rinkinio stulpelį.

ActiveCell.Formula = "=SUM(C5:D5)": Pridedame pardavimus Ląstelė C5 ir D5 pasirinktoje ląstelėje.

ActiveCell.AutoFill Tikslas:=Range(ActiveCell.Address & ":E" & last_row): Gavę rezultatą, naudojame automatinio užpildymo funkciją. Ji pradeda automatiškai pildyti nuo aktyviosios ląstelės iki paskutinės naudotos eilutės, kurią gavome anksčiau.

Dabar pasirinkite E5 ląstelė .

Po to paleiskite VBA makrokomandą, kad į paskutinę eilutę būtų įtraukta formulė ir automatinis užpildymas.

Kaip matote, sėkmingai panaudojome VBA makrokomandą, kad automatiškai užpildytume formulę iki paskutinės eilutės.

Panašūs skaitiniai

  • Kaip "Excel" programoje pakartoti eilutes nurodytą skaičių kartų (4 būdai)
  • Automatinis eilučių numeravimas "Excel" programoje (8 metodai)
  • Kaip užpildyti "Excel" stulpelį ta pačia reikšme (9 gudrybės)
  • Taikyti automatinio užpildymo spartųjį klavišą programoje "Excel" (7 metodai)

3. Automatinis užpildymas į paskutinę eilutę naudojant dinaminį diapazoną su "Excel VBA

Anksčiau parodėme keletą VBA makrokomandų, skirtų automatiškai užpildyti paskutinę "Excel" eilutę. Dabar tuose pavyzdžiuose jau naudojome dinaminius intervalus.

Norėdami suprasti statinius diapazonus, pažvelkite į toliau pateiktą kodą:

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

Iš esmės "Excel" nurodėme įvesti formulę į E5 ląstelė ir automatiškai užpildykite jį iš E5 ląstelė į Ląstelė E11 Čia nurodėme intervalą. O jei pridėsite daugiau eilučių? Tokiu atveju mūsų VBA automatiškai neužpildys tų papildomų eilučių, nes jau nurodėme automatiškai užpildyti konkretų intervalą.

Šiai problemai išspręsti sugalvojau sprendimą, kuris gali priimti dinaminį diapazoną:

 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 

Kaip matote, pagal šią kodo eilutę pirmiausia randame paskutinę eilutę:

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

Po to automatiškai užpildome paskutinę eilutę naudodami dinaminį diapazoną:

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

Nesvarbu, kiek eilučių įtrauksite į savo duomenų rinkinį, šis VBA kodas sėkmingai jas identifikuos. Ir automatiškai užpildys jas formule.

Dinaminis diapazonas iš esmės reiškia, kad jums nereikia įvesti diapazono rankiniu būdu. Programa "Excel" kartkartėmis jį atnaujins.

Skaityti daugiau: "Excel VBA": "Range" klasės automatinio užpildymo metodas nepavyko

4. Automatinis užpildymas į paskutinį "Excel" stulpelį naudojant VBA

Jei perskaitėte ankstesnius skyrelius apie automatinį užpildymą iki paskutinės eilutės, tuomet galite lengvai automatiškai užpildyti paskutinį stulpelį. Jums tereikia surasti paskutinio stulpelio numerį ir jį automatiškai užpildyti naudojant "Excel VBA".

Pažvelkite į šį duomenų rinkinį:

Čia turime duomenų rinkinį, kuriame pateikiamas asmens 3 mėnesių biudžetas. Dabar, naudodami "Excel" VBA, sudėsime visų mėnesių išlaidas ir automatiškai užpildysime paskutinio stulpelio formulę.

Dabar įveskite šį 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: Jis grąžina paskutinį panaudotą stulpelį iš eilutės 6. Duomenų rinkinyje galite pasirinkti bet kurią eilutę, nuo kurios norite pradėti.

Range("D9").Formula = "=SUM(D6:D8)": Pridedame išlaidas, susijusias su trys mėnesiai (sausis, vasaris, kovas).

Range("D9").AutoFill Destination:=Range("D9", Cells(9, last_column)): Gavę rezultatą, naudojame automatinį užpildymą. Čia mūsų pagrindinė eilutė yra eilutė Nr. 9. Visi mūsų duomenys bus šioje eilutėje. Automatinis užpildymas prasideda nuo stulpelio D į paskutinį panaudotą stulpelį, kurį anksčiau gavome naudodami last_column .

Paleidę makrokomandą pamatysite tokią išvestį:

Kaip matote, sėkmingai panaudojome VBA, kad automatiškai užpildytume formulę į paskutinį "Excel" stulpelį.

Skaityti daugiau: Kaip automatiškai užpildyti "Excel" stulpelį

5. Automatinis eilės numerių pildymas į paskutinę "Excel" eilutę naudojant VBA

Taip pat galite automatiškai užpildyti eilės numerius naudodami VBA automatinio užpildymo funkciją. Šiuo atveju turite naudoti xlFillSeries automatinio užpildymo tipą. "Excel" supras šabloną ir jį užpildys.

Pažvelkite į šią ekrano nuotrauką:

Čia turime keletą vardų. Ir norime jiems nuosekliai suteikti ID. Tam panaudosime VBA automatinio užpildymo funkciją.

Automatinis nuosekliųjų numerių pildymas su statiniu diapazonu:

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

Paleidę kodą, pamatysite išvestį:

Jei norite naudoti dinaminį diapazoną, naudokite šį 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" & amp; last_row), Type:=xlFillSeries End Sub 

last_row = Cells(Rows.Count, 2).End(xlUp).Row: Jis grąžina paskutinę panaudotą eilutę iš stulpelio B.

Range("C5").AutoFill Destination:=Range("C5:C" & last_row), Type:=xlFillSeries: Jis priims ID Ląstelė C5 ir automatiškai užpildyti paskutinę stulpelio eilutę C naudojant xlFillSeries ,

Abiem atvejais gausite tą patį rezultatą:

Kaip matote, sėkmingai panaudojome VBA kodą, kad automatiškai užpildytume eilės numerius "Excel" programoje.

Skaityti daugiau: "Excel" formulės eilės numeriams užpildyti Praleisti paslėptas eilutes

💬 Dalykai, kuriuos verta prisiminti

Galite sustabdyti automatinį pildymą įvairiais būdais, jei to nenorite. .

Negalite vienu metu automatiškai užpildyti kelių eilučių ir stulpelių. Atlikite tai po vieną.

Išvada

Baigdamas tikiuosi, kad ši mokomoji knyga suteikė jums naudingų žinių apie automatinį formulės užpildymą iki paskutinės eilutės naudojant VBA kodus. Rekomenduojame išmokti ir taikyti visus šiuos nurodymus savo duomenų rinkiniui. Atsisiųskite pratybų sąsiuvinį ir išbandykite juos patys. Taip pat nedvejodami pateikite atsiliepimus komentarų skiltyje. Jūsų vertingi atsiliepimai skatina mus kurti tokias mokomąsias knygas kaiptai.

Nepamirškite patikrinti mūsų svetainės Exceldemy.com įvairių su "Excel" susijusių problemų ir sprendimų.

Nuolat mokykitės naujų metodų ir tobulėkite!

Hugh Westas yra labai patyręs Excel treneris ir analitikas, turintis daugiau nei 10 metų patirtį šioje srityje. Jis yra įgijęs apskaitos ir finansų bakalauro bei verslo administravimo magistro laipsnius. Hugh turi aistrą mokymui ir sukūrė unikalų mokymo metodą, kurį lengva sekti ir suprasti. Jo ekspertinės žinios apie „Excel“ padėjo tūkstančiams studentų ir specialistų visame pasaulyje tobulinti savo įgūdžius ir tobulėti savo karjeroje. Savo tinklaraštyje Hugh dalijasi savo žiniomis su pasauliu, siūlydamas nemokamus „Excel“ vadovėlius ir internetinius mokymus, kad padėtų asmenims ir įmonėms išnaudoti visą savo potencialą.