Autofyll med en makro - VBA -kodeeksempler

Autofyll i VBA

Denne artikkelen viser hvordan du bruker Autofyll i VBA.

Autofyll er et flott verktøy i Excel når data er repeterende eller hvis de er sekvensielle (som ukedager, datoer, måneder i året osv.). Vi vil normalt fylle de første cellene med nødvendige data, og deretter bruke Autofyll til å kopiere nødvendige data ned til et valgt område.

Alt dette kan gjøres ved hjelp av en VBA -makro.

Autofyll ved hjelp av økende tall

For det første, i koden vår, kan vi deklarere to Range -variabler.

Valg1 er området med dataene som skal fylles ut automatisk - for eksempel 1 og 2.

Selection2 er hel område til autofyll, inkluderer dette det første området pluss de tomme mellomromene for autofyll.

Vi bruker deretter AutoFill -metoden for å fylle det andre utvalgsområdet.

123456789101112131415 Offentlig sub MyAutoFill ()'av easyexcel.net'Angi rekkeviddevariablerDim selection1 As RangeDim selection2 As Range'Angi rekkeviddevariabler = deres respektive områderAngi utvalg1 = Ark1.Range ("A1: A2")Sett utvalg2 = Ark1.Range ("A1: A12")'Autofyllselection1.AutoFill Destination: = selection2Slutt Sub

Vi kan deretter kjøre makroen til Autofyll -område (A1: A12).

Når vi bruker AutoFill -metoden, kan vi velge hvilken type autofyll vi ønsker å utføre. I eksemplet ovenfor angav vi ikke typen Autofyll som betyr at standardtypen ble brukt - i dette tilfellet økte tallene med 1 på hver linje.

Autofyll ved hjelp av måneder

Makroen for å fylle ut automatisk ved å bruke måneder er nesten identisk med den som ble brukt for å øke tallene, med et viktig unntak.

1234567891011 Offentlig sub AutoFillMonths ()'av easyexcel.net'Angi rekkeviddevariablerDim selection1 As RangeDim selection2 As Range'Angi rekkeviddevariabler = deres respektive områderAngi utvalg1 = Ark1.Range ("A1: A2")Sett utvalg2 = Ark1.Range ("A1: A12")'Autofyll månedeneAutofyll -destinasjon: = selection2, Type: = xlFillMonthsSlutt Sub

Når vi fyller ut typen autofyll, får vi en rekke Excel -konstanter å velge mellom. Hvis vi utelater dette, vil Excel bestemme typen data som skal fylles ut fra de opprinnelige dataene som er gitt.

Excel er i stand til å plukke opp standardserier som måneder, ukedager og inkrementelle tall uten å måtte bruke Type -argumentet.

Autofyll ved hjelp av xlFillCopy

Hvis vi vil bruke en AutoFill -makro til å kopiere informasjonen ned til nye celler, kan vi bruke xlFillCopy Constant.

1234567 Offentlig Sub AutoFillCopy ()Dim Selection1 As RangeDim Selection2 As RangeSet Selection1 = Sheet1.Range ("A1: A1")Set Selection2 = Sheet1.Range ("A1: A12")Selection1.AutoFill Destination: = Selection2, Type: = xlFillCopySlutt Sub

Å kjøre denne makroen vil kopiere dataene i område ("A1") ned til område ("A1: A12") i stedet for å automatisk fylle cellene med påfølgende måneder fra "Jan".

Autofyll ved hjelp av xlFlashFill

Når vi må konvertere tekst til kolonner i Excel, kan vi enten bruke alternativet tekst til kolonner, eller vi kan bruke et alternativ som heter Flash Fill. Dette er ekstremt nyttig i VBA.

Ta for eksempel følgende data:

Vi kan skrive etternavnet "Tolley" i celle B2 og deretter bruke en makro til å fylle ut resten av dataene.

1234567 Sub FlashFill ()Dim Selection1 As RangeDim Selection2 As RangeSet Selection1 = Range ("B2: B2")Angi utvalg2 = område ("B2: B15")Selection1.AutoFill Destination: = Selection2, Type: = xlFlashFillSlutt Sub

Vi kan deretter gjenta denne vilkolonnene C, D og E for å få de resterende dataene.

1234567891011 Angi valg 1 = område ("C2: C2")Angi utvalg2 = område ("C2: C15")Selection1.AutoFill Destination: = Selection2, Type: = xlFlashFillAngi valg 1 = område ("D2: D2")Angi utvalg2 = område ("D2: D15")Selection1.AutoFill Destination: = Selection2, Type: = xlFlashFillAngi valg 1 = område ("E2: E2")Angi utvalg2 = område ("E2: E15")Selection1.AutoFill Destination: = Selection2, Type: = xlFlashFill

Hver kolonne fylles deretter med de riktige dataene basert på verdien i rad 2.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave