Automatsko popunjavanje u VBA
Ovaj članak prikazuje kako se koristi automatsko popunjavanje u VBA -i.
Automatsko popunjavanje izvrstan je alat u Excelu kada se podaci ponavljaju ili su uzastopni (poput dana u tjednu, datuma, mjeseci u godini itd.). Obično bismo prvih nekoliko ćelija ispunili potrebnim podacima, a zatim bismo pomoću Automatskog popunjavanja tražene podatke kopirali u odabrani raspon.
To se sve može učiniti pomoću VBA makronaredbe.
Automatsko popunjavanje pomoću povećavanja brojeva
Prvo, u našem kodu možemo proglasiti dvije varijable raspona.
Odabir 1 je raspon s podacima za automatsko popunjavanje - na primjer 1 i 2.
Odabir 2 je cijeli raspon za automatsko popunjavanje, to uključuje prvi raspon plus prazna mjesta za automatsko popunjavanje.
Zatim koristimo metodu automatskog popunjavanja za popunjavanje drugog raspona odabira.
123456789101112131415 | Javni pod MyAutoFill ()'od easyexcel.net'Deklarirajte varijable rasponaPrigušen odabir1 Kao rasponPrigušen odabir2 Kao raspon'Postavi varijable raspona = njihovi odgovarajući rasponiPostavi odabir1 = List1.Range ("A1: A2")Postavi odabir2 = List1. Raspon ("A1: A12")'Automatsko popunjavanjeodabir1.AutoFill odredište: = odabir2Kraj podm |
Zatim možemo pokrenuti makronaredbu do raspona automatskog popunjavanja (A1: A12).
Kada koristimo metodu automatskog popunjavanja, možemo odabrati vrstu automatskog popunjavanja koju želimo izvesti. U gornjem primjeru nismo naveli vrstu automatskog popunjavanja, što znači da je korištena zadana vrsta - u ovom slučaju povećanje broja za 1 u svakom retku.
Automatsko popunjavanje pomoću mjeseci
Makro za automatsko popunjavanje pomoću mjeseci gotovo je identičan onom koji se koristi za povećanje brojeva, s jednom važnom iznimkom.
1234567891011 | Javno podautomatsko popunjavanje mjeseci ()'od easyexcel.net'Deklarirajte varijable rasponaPrigušen odabir1 Kao rasponPrigušen odabir2 Kao raspon'Postavi varijable raspona = njihovi odgovarajući rasponiPostavi odabir1 = List1.Range ("A1: A2")Postavi odabir2 = List1. Raspon ("A1: A12")'Automatsko popunjavanje mjeseciOdredište automatskog popunjavanja: = selection2, Vrsta: = xlFillMonthsKraj podm |
Kada ispunimo vrstu automatskog popunjavanja, dat nam je niz Excel konstanti na izbor. Ako ovo izostavimo, Excel će od izvornih podataka odrediti vrstu podataka koje treba popuniti.
Excel može pokupiti standardne serije poput mjeseci, dana u tjednu i inkrementalnih brojeva bez potrebe za korištenjem argumenta Type.
Automatsko popunjavanje pomoću xlFillCopy
Ako želimo upotrijebiti makronaredbu automatskog popunjavanja za kopiranje podataka u nove ćelije, možemo upotrijebiti konstantu xlFillCopy.
1234567 | Javno pomoćno automatsko popunjavanje ()Dim Selection1 As RangeDim Selection2 As RangePostavi odabir1 = list 1. Raspon ("A1: A1")Postavi odabir 2 = List 1. Raspon ("A1: A12")Odabir 1. Odredište automatskog popunjavanja: = Odabir2, Vrsta: = xlFillCopyKraj podm |
Pokretanje ove makronaredbe kopiralo bi podatke u rasponu (“A1”) do raspona (“A1: A12”) umjesto automatskog popunjavanja ćelija sljedećim mjesecima od “siječnja”.
Automatsko popunjavanje pomoću xlFlashFill
Kad moramo pretvoriti tekst u stupce u Excelu, možemo ili upotrijebiti opciju pretvaranja teksta u stupce ili možemo upotrijebiti opciju koja se naziva Flash Fill. Ovo je izuzetno korisno u VBA -i.
Uzmimo za primjer sljedeće podatke:
Možemo upisati prezime “Tolley” u ćeliju B2, a zatim pomoću makronaredbe Flashfill preostale podatke.
1234567 | Dodatni FlashFill ()Dim Selection1 As RangeDim Selection2 As RangePostavi odabir1 = raspon ("B2: B2")Postavi odabir2 = raspon ("B2: B15")Odabir 1. Odredište automatskog popunjavanja: = Odabir2, Vrsta: = xlFlashFillKraj podm |
Zatim možemo ponoviti ovo stupce C, D i E kako bismo dobili preostale podatke.
1234567891011 | Postavi odabir1 = raspon ("C2: C2")Postavi odabir2 = raspon ("C2: C15")Odabir 1. Odredište automatskog popunjavanja: = Odabir2, Vrsta: = xlFlashFillPostavi odabir1 = raspon ("D2: D2")Postavi odabir2 = raspon ("D2: D15")Odabir 1. Odredište automatskog popunjavanja: = Odabir2, Vrsta: = xlFlashFillPostavi odabir1 = raspon ("E2: E2")Postavi odabir2 = raspon ("E2: E15")Odabir 1. Odredište automatskog popunjavanja: = Odabir2, Vrsta: = xlFlashFill |
Svaki stupac tada će se ispuniti odgovarajućim podacima na temelju vrijednosti u retku 2.