Autofyld med en makro - eksempler på VBA -kode

Autofyld i VBA

Denne artikel viser, hvordan du bruger AutoFill i VBA.

Autofyld er et fantastisk værktøj i Excel, når data er gentagne, eller hvis de er sekventielle (som ugedage, datoer, måneder af året osv.). Vi ville normalt fylde de første par celler med nødvendige data, og derefter bruge Autofyld til at kopiere de nødvendige data ned til et valgt område.

Alt dette kan gøres ved hjælp af en VBA -makro.

AutoFyld ved hjælp af stigende numre

For det første kan vi i vores kode erklære to Range -variabler.

Valg1 er intervallet med dataene til automatisk udfyldning - f.eks. 1 og 2.

Selection2 er hel område til autofyld, dette inkluderer det første område plus de tomme mellemrum til autofyld.

Vi bruger derefter AutoFill -metoden til at udfylde det andet valgområde.

123456789101112131415 Offentlig sub MyAutoFill ()'af easyexcel.net'Angiv rækkeviddevariablerDim valg 1 Som områdeDim selection2 As Range'Indstil rækkeviddevariabler = deres respektive områderSet selection1 = Sheet1.Range ("A1: A2")Set selection2 = Sheet1.Range ("A1: A12")'Autofyldselection1.AutoFill Destination: = selection2Afslut Sub

Vi kan derefter køre makroen til Autofyld -område (A1: A12).

Når vi bruger metoden AutoFyld, kan vi vælge den type Autofyld, vi ønsker at udføre. I eksemplet ovenfor angav vi ikke typen Autofyld, hvilket betyder, at standardtypen blev brugt - i dette tilfælde øgede tallene med 1 på hver linje.

Autofyld ved hjælp af måneder

Makroen til automatisk udfyldning ved hjælp af måneder er næsten identisk med den, der bruges til at øge tal, med en vigtig undtagelse.

1234567891011 Offentlig sub AutoFillMonths ()'af easyexcel.net'Angiv rækkeviddevariablerDim valg 1 Som områdeDim selection2 As Range'Indstil rækkeviddevariabler = deres respektive områderSet selection1 = Sheet1.Range ("A1: A2")Set selection2 = Sheet1.Range ("A1: A12")'Autofyld månederneAutoudfyld destination: = selection2, Type: = xlFillMonthsAfslut Sub

Når vi udfylder typen af ​​autofyld, får vi en række Excel -konstanter at vælge imellem. Hvis vi udelader dette, bestemmer Excel den datatype, der skal udfyldes ud fra de angivne originale data.

Excel er i stand til at hente standardserier som måneder, ugedage og inkrementelle tal uden at skulle bruge Type -argumentet.

AutoFyld ved hjælp af xlFillCopy

Hvis vi vil bruge en AutoFill -makro til at kopiere oplysningerne ned til nye celler, kan vi bruge xlFillCopy Constant.

1234567 Offentlig sub AutoFillCopy ()Dim markering1 som områdeDim Selection2 som områdeSet Selection1 = Sheet1.Range ("A1: A1")Set Selection2 = Sheet1.Range ("A1: A12")Selection1.AutoFill Destination: = Selection2, Type: = xlFillCopyAfslut Sub

Hvis du kører denne makro, kopieres dataene i område ("A1") ned til område ("A1: A12") i stedet for automatisk at udfylde cellerne med efterfølgende måneder fra "Jan".

AutoFyld ved hjælp af xlFlashFill

Når vi skal konvertere tekst til kolonner i Excel, kan vi enten bruge indstillingen tekst til kolonner, eller vi kan bruge en indstilling kaldet Flash Fill. Dette er yderst nyttigt i VBA.

Tag følgende data for eksempel:

Vi kan skrive efternavnet "Tolley" i celle B2 og derefter bruge en makro til Flashfyld resten af ​​dataene.

1234567 Sub FlashFill ()Dim markering1 som områdeDim Selection2 som områdeSet Selection1 = Range ("B2: B2")Set Selection2 = Range ("B2: B15")Selection1.AutoFill Destination: = Selection2, Type: = xlFlashFillAfslut Sub

Vi kan derefter gentage denne vilkolonne C, D og E for at få de resterende 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

Hver kolonne fyldes derefter med de relevante data baseret på værdien i række 2.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave