Automaattäide makroga - VBA koodi näited

Automaatne täitmine VBA -s

See artikkel näitab, kuidas automaatset täitmist VBA -s kasutada.

Automaatne täitmine on suurepärane tööriist Excelis, kui andmed korduvad või on järjestikused (nt nädalapäevad, kuupäevad, aasta kuud jne). Tavaliselt täidaksime paar esimest lahtrit nõutavate andmetega ja seejärel kasutaksime automaatset täitmist, et kopeerida vajalikud andmed valitud vahemikku.

Seda kõike saab teha VBA makro abil.

Automaatne täitmine kasvavate numbrite abil

Esiteks saame oma koodis deklareerida kaks vahemiku muutujat.

Valik1 on automaattäidetavate andmete vahemik - näiteks 1 ja 2.

Valik 2 on terve vahemik kuni automaatse täitmiseni, see hõlmab esimest vahemikku pluss tühjad tühikud automaatseks täitmiseks.

Seejärel kasutame teise valikuvahemiku täitmiseks automaatse täitmise meetodit.

123456789101112131415 Avalik alamfunktsioon MyAutoFill ()"saidilt easyexcel.net'Deklareeri vahemiku muutujadDim valik1 As RangeDim valik2 As Range'Määra vahemiku muutujad = nende vastavad vahemikudMäära valik1 = leht1. Vahemik ("A1: A2")Määra valik2 = leht1. Vahemik ("A1: A12")'AutomaattäideValik 1. Automaattäite sihtkoht: = valik2End Sub

Seejärel saame makro käivitada automaattäite vahemikku (A1: A12).

Automaattäite meetodi kasutamisel saame valida automaattäite tüübi, mida soovime teostada. Ülaltoodud näites ei täpsustanud me automaattäite tüüpi, mis tähendab, et kasutati vaiketüüpi - antud juhul suurendades iga rea ​​numbreid 1 võrra.

Automaatne täitmine kuude abil

Makro automaatseks täitmiseks kuude kaupa on peaaegu identne numbrite suurendamiseks kasutatava makroga, välja arvatud üks oluline erand.

1234567891011 Avalik alamtäite automaattäide (kuud) ()"saidilt easyexcel.net'Deklareeri vahemiku muutujadDim valik1 As RangeDim valik2 As Range'Määra vahemiku muutujad = nende vastavad vahemikudMäära valik1 = leht1. Vahemik ("A1: A2")Määra valik2 = leht1. Vahemik ("A1: A12")'Täida kuud automaatseltAutomaattäite sihtkoht: = valik2, tüüp: = xlFillMonthsEnd Sub

Kui täidame automaatse täitmise tüübi, antakse meile valik Exceli konstante. Kui me selle välja jätame, määrab Excel algsete andmete põhjal täidetavate andmete tüübi.

Excel suudab valida tavalisi seeriaid, nagu kuud, nädalapäevad ja juurdekasvunumbrid, ilma et oleks vaja kasutada argumenti Tüüp.

Automaatne täitmine, kasutades xlFillCopy

Kui soovime teabe täitmiseks uutesse lahtritesse kasutada automaattäite makro, saame kasutada xlFillCopy Constant.

1234567 Avalik alamtäite automaatne täitmine ()Dim Valik1 kui vahemikDim Valik2 As RangeSet Selection1 = Sheet1.Range ("A1: A1")Set Selection2 = Sheet1.Range ("A1: A12")Valik 1. Automaattäite sihtkoht: = Valik2, Tüüp: = xlFillCopyEnd Sub

Selle makro käitamine kopeeriks vahemikus (“A1”) olevad andmed vahemikku (“A1: A12”), mitte ei täidaks lahtreid automaatselt järgmiste kuudega alates jaanuarist.

Automaatne täitmine xlFlashFill abil

Kui peame Excelis teksti teisendama veergudeks, saame kasutada teksti veergudeks valikut või kasutada funktsiooni Flash Fill. See on VBA -s äärmiselt kasulik.

Võtke näiteks järgmised andmed:

Võime sisestada lahtrisse B2 perekonnanime „Tolley” ja seejärel kasutada ülejäänud andmete Flash -täitmiseks makro.

1234567 Alamväljatäide ()Dim Valik1 kui vahemikDim Valik2 As RangeMäära valik1 = vahemik ("B2: B2")Set Selection2 = Vahemik ("B2: B15")Valik 1. Automaattäite sihtkoht: = Valik2, Tüüp: = xlFlashFillEnd Sub

Seejärel võime järelejäänud andmete saamiseks korrata seda tahteveergu C, D ja E.

1234567891011 Määra valik1 = vahemik ("C2: C2")Määra valik2 = vahemik ("C2: C15")Valik 1. Automaattäite sihtkoht: = Valik2, Tüüp: = xlFlashFillMäära valik1 = vahemik ("D2: D2")Set Selection2 = Vahemik ("D2: D15")Valik 1. Automaattäite sihtkoht: = Valik2, Tüüp: = xlFlashFillSet Selection1 = Vahemik ("E2: E2")Set Selection2 = Vahemik ("E2: E15")Valik 1. Automaattäite sihtkoht: = Valik2, Tüüp: = xlFlashFill

Seejärel täidetakse iga veerg sobivate andmetega, mis põhinevad rea 2 väärtusel.

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave