Automatisch aanvullen met een macro - VBA-codevoorbeelden

Automatisch invullen in VBA

Dit artikel laat zien hoe u Automatisch aanvullen in VBA gebruikt.

Automatisch aanvullen is een geweldig hulpmiddel in Excel wanneer gegevens repetitief zijn of opeenvolgend zijn (zoals dagen van de week, datums, maanden van het jaar, enz.). Normaal gesproken vullen we de eerste paar cellen met de vereiste gegevens en gebruiken we vervolgens Automatisch aanvullen om de vereiste gegevens naar een geselecteerd bereik te kopiëren.

Dit kan allemaal met behulp van een VBA-macro.

Automatisch aanvullen met oplopende getallen

Ten eerste kunnen we in onze code twee Range-variabelen declareren.

Selectie1 is het bereik met de gegevens die automatisch moeten worden ingevuld, bijvoorbeeld 1 en 2.

Selectie2 is de geheel bereik om automatisch in te vullen, dit omvat het eerste bereik plus de lege spaties om automatisch in te vullen.

Vervolgens gebruiken we de AutoFill-methode om het tweede selectiebereik te vullen.

123456789101112131415 Openbare sub MijnAutoFill()'door easyexcel.net''Bereikvariabelen declareren'Dim selectie1 Als bereikDim selectie2 Als bereik'Stel bereikvariabelen in = hun respectieve bereiken'Selectie instellen1 = Blad1.Bereik ("A1:A2")Selectie instellen2 = Blad1.Bereik ("A1:A12")'Automatisch aanvullen'selection1.AutoFill Destination:=selection2Einde sub

We kunnen dan de macro uitvoeren op Autofill Range (A1:A12).

Wanneer we de methode Automatisch aanvullen gebruiken, kunnen we het type Automatisch aanvullen selecteren dat we willen uitvoeren. In het bovenstaande voorbeeld hebben we het type Automatisch aanvullen niet gespecificeerd, wat betekent dat het standaardtype is gebruikt - in dit geval de getallen met 1 op elke regel verhoogd.

Automatisch aanvullen met maanden

De macro om automatisch te vullen met maanden is bijna identiek aan de macro die wordt gebruikt om getallen te verhogen, met één belangrijke uitzondering.

1234567891011 Openbare sub automatisch aanvullenMonths()'door easyexcel.net''Bereikvariabelen declareren'Dim selectie1 Als bereikDim selectie2 Als bereik'Stel bereikvariabelen in = hun respectieve bereiken'Selectie instellen1 = Blad1.Bereik ("A1:A2")Selectie instellen2 = Blad1.Bereik ("A1:A12")'Automatisch de maanden invullen'Bestemming automatisch aanvullen:=selection2, Type:=xlFillMonthsEinde sub

Wanneer we het type autofill invullen, krijgen we een aantal Excel-constanten om uit te kiezen. Als we dit weglaten, bepaalt Excel het type gegevens dat moet worden ingevuld op basis van de oorspronkelijke gegevens.

Excel kan standaardreeksen zoals maanden, dagen van de week en incrementele getallen oppikken zonder het argument Type te hoeven gebruiken.

Automatisch aanvullen met xlFillCopy

Als we een AutoFill-macro willen gebruiken om de informatie naar nieuwe cellen te kopiëren, kunnen we de xlFillCopy-constante gebruiken.

1234567 Openbare sub automatisch aanvullenCopy()Dim Selectie1 Als BereikDim Selectie2 Als BereikSet Selectie1 = Blad1.Bereik ("A1:A1")Set Selectie2 = Blad1.Bereik ("A1:A12")Selection1.AutoFill Destination:=Selectie2, Type:=xlFillCopyEinde sub

Als u deze macro uitvoert, worden de gegevens in Range ("A1") naar Range ("A1:A12") gekopieerd in plaats van dat de cellen automatisch worden gevuld met daaropvolgende maanden vanaf "Jan".

Automatisch aanvullen met xlFlashFill

Wanneer we tekst naar kolommen in Excel moeten converteren, kunnen we de optie tekst naar kolommen gebruiken, of we kunnen een optie gebruiken met de naam Flash Fill. Dit is erg handig in VBA.

Neem bijvoorbeeld de volgende gegevens:

We kunnen de achternaam "Tolley" in cel B2 typen en vervolgens een macro gebruiken om de rest van de gegevens te Flashfill.

1234567 Sub FlashFill()Dim Selectie1 Als BereikDim Selectie2 Als BereikSet Selectie1 = Bereik ("B2:B2")Set Selectie2 = Bereik ("B2:B15")Selection1.AutoFill Destination:=Selectie2, Type:=xlFlashFillEinde sub

We kunnen dit vervolgens herhalen in de kolommen C, D en E om de resterende gegevens te krijgen.

1234567891011 Set Selectie1 = Bereik ("C2:C2")Set Selectie2 = Bereik ("C2:C15")Selection1.AutoFill Destination:=Selectie2, Type:=xlFlashFillSet Selectie1 = Bereik ("D2:D2")Set Selectie2 = Bereik ("D2:D15")Selection1.AutoFill Destination:=Selectie2, Type:=xlFlashFillSet Selectie1 = Bereik ("E2:E2")Set Selectie2 = Bereik ("E2:E15")Selection1.AutoFill Destination:=Selectie2, Type:=xlFlashFill

Elke kolom wordt dan gevuld met de juiste gegevens op basis van de waarde in rij 2.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave