Autofyll med ett makro - exempel på VBA -kod

Autofyll i VBA

Den här artikeln visar hur du använder Autofyll i VBA.

Autofyll är ett utmärkt verktyg i Excel när data är repetitiva eller om de är sekventiella (som veckodagar, datum, månader på året etc.). Vi skulle normalt fylla de första cellerna med nödvändig data och sedan använda Autofyll för att kopiera den data som krävs till ett valt intervall.

Allt detta kan göras med ett VBA -makro.

Autofyll med hjälp av ökande nummer

För det första kan vi i vår kod deklarera två intervallvariabler.

Urval1 är intervallet med data som ska fyllas i automatiskt - till exempel 1 och 2.

Selection2 är hel intervall till autofyllning, detta inkluderar det första intervallet plus de tomma blankstegen för autofyllning.

Vi använder sedan AutoFill -metoden för att fylla det andra urvalsområdet.

123456789101112131415 Public Sub MyAutoFill ()'av easyexcel.net'Deklarera intervallvariablerDim urval1 Som intervallDim selection2 As Range'Ange intervallvariabler = deras respektive intervallAnge val1 = Ark1.Range ("A1: A2")Set selection2 = Sheet1.Range ("A1: A12")'Autofyllselection1.AutoFill Destination: = selection2Avsluta Sub

Vi kan sedan köra makrot till Autofill Range (A1: A12).

När vi använder AutoFill -metoden kan vi välja vilken typ av autofyllning vi vill utföra. I exemplet ovan angav vi inte vilken typ av autofyll som betyder att standardtypen användes - i det här fallet ökade siffrorna med 1 på varje rad.

Autofyll med månader

Makrot för autofyllning med månader är nästan identiskt med det som används för att öka antalet, med ett viktigt undantag.

1234567891011 Public Sub AutoFillMonths ()'av easyexcel.net'Deklarera intervallvariablerDim urval1 Som intervallDim selection2 As Range'Ange intervallvariabler = deras respektive intervallSet selection1 = Sheet1.Range ("A1: A2")Set selection2 = Sheet1.Range ("A1: A12")'Autofyll månadernaAutofyllmål: = selection2, Typ: = xlFillMonthsAvsluta Sub

När vi fyller i typen av autofyllning får vi ett antal Excel -konstanter att välja mellan. Om vi ​​utelämnar detta kommer Excel att avgöra vilken typ av data som ska fyllas i från de ursprungliga uppgifterna.

Excel kan hämta standardserier som månader, veckodagar och inkrementella nummer utan att behöva använda typargumentet.

Autofyll med xlFillCopy

Om vi ​​vill använda ett autofyll -makro för att kopiera informationen till nya celler kan vi använda xlFillCopy Constant.

1234567 Public Sub AutoFillCopy ()Dim Selection1 As RangeDim Selection2 som intervallSet Selection1 = Sheet1.Range ("A1: A1")Set Selection2 = Sheet1.Range ("A1: A12")Selection1.AutoFill Destination: = Selection2, Type: = xlFillCopyAvsluta Sub

Att köra detta makro skulle kopiera data i intervall ("A1") ner till intervall ("A1: A12") i stället för att automatiskt fylla cellerna med efterföljande månader från "jan".

Autofyll med xlFlashFill

När vi behöver konvertera text till kolumner i Excel kan vi antingen använda alternativet text till kolumner, eller så kan vi använda ett alternativ som heter Flash Fill. Detta är extremt användbart i VBA.

Ta följande data till exempel:

Vi kan skriva efternamnet "Tolley" i cell B2 och sedan använda ett makro för att Flashfylla resten av data.

1234567 Sub FlashFill ()Dim Selection1 As RangeDim Selection2 som intervallSet Selection1 = Range ("B2: B2")Set Selection2 = Range ("B2: B15")Selection1.AutoFill Destination: = Selection2, Type: = xlFlashFillAvsluta Sub

Vi kan sedan upprepa detta kommer kolumnerna C, D och E för att få resterande data.

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

Varje kolumn fylls sedan med lämplig data baserat på värdet i rad 2.

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave