Completați automat cu un Macro - Exemple de cod VBA

Completarea automată în VBA

Acest articol demonstrează cum se utilizează completarea automată în VBA.

Completarea automată este un instrument excelent în Excel atunci când datele sunt repetitive sau dacă sunt secvențiale (cum ar fi zilele săptămânii, datele, lunile anului etc.). În mod normal, vom umple primele două celule cu datele necesare și apoi vom folosi AutoFill pentru a copia datele necesare într-un interval selectat.

Acest lucru se poate face cu ajutorul unei macrocomenzi VBA.

Completați automat folosind numere incrementale

În primul rând, în codul nostru, putem declara două variabile Range.

Selecția 1 este intervalul cu datele de completare automată - de exemplu 1 și 2.

Selecția2 este întreg interval pentru completare automată, acesta include primul interval plus spațiile goale pentru completare automată.

Apoi folosim metoda Completare automată pentru a umple al doilea interval de selecție.

123456789101112131415 Public Sub MyAutoFill ()'de către easyexcel.net'Declarați variabilele de gamăSelecție dim 1 Ca gamăSelecție dim 2 Ca gamă'Setați variabilele intervalului = intervalele lor respectiveSet selection1 = Sheet1.Range ("A1: A2")Set selection2 = Sheet1.Range ("A1: A12")'Completare automatăselection1.AutoFill Destination: = selection2Sfârșitul Sub

Putem apoi rula macrocomanda la Autofill Range (A1: A12).

Când folosim metoda Completare automată, putem selecta tipul de completare automată pe care dorim să o realizăm. În exemplul de mai sus, nu am specificat tipul de completare automată, ceea ce înseamnă că a fost utilizat tipul implicit - în acest caz, incrementând numerele cu 1 pe fiecare linie.

Completați automat utilizând luni

Macro-ul care se completează automat folosind luni este aproape identic cu cel folosit pentru creșterea numerelor, cu o excepție importantă.

1234567891011 Public Sub AutoFillMonths ()'de către easyexcel.net„Declarați variabilele de gamăSelecție dim 1 Ca gamăSelecție dim 2 Ca gamă'Setați variabilele intervalului = intervalele lor respectiveSet selection1 = Sheet1.Range ("A1: A2")Set selection2 = Sheet1.Range ("A1: A12")„Completează automat lunileDestinație de completare automată: = selection2, Type: = xlFillMonthsSfârșitul Sub

Când completăm tipul de completare automată, ni se oferă un număr de constante Excel din care să alegem. Dacă lăsăm acest lucru, Excel va determina tipul de date de completat din datele originale date.

Excel este capabil să preia serii standard, cum ar fi lunile, zilele săptămânii și numerele incrementale, fără a fi necesar să utilizați totuși argumentul Type.

Completați automat utilizând xlFillCopy

Dacă dorim să folosim o macrocomandă de completare automată pentru a copia informațiile în celule noi, putem folosi constanta xlFillCopy.

1234567 Public Sub AutoFillCopy ()Selecție estompare1 Ca intervalDim Selection2 Ca RangeSet Selection1 = Sheet1.Range ("A1: A1")Set Selection2 = Sheet1.Range ("A1: A12")Selecție 1. Destinație de completare automată: = Selecție2, tip: = xlFillCopySfârșitul Sub

Rularea acestei macrocomandări ar copia datele din Interval („A1”) până la Interval („A1: A12”), mai degrabă decât să umpleți automat celulele cu lunile următoare de la „Ianuarie”.

Completați automat utilizând xlFlashFill

Când trebuie să convertim textul în coloane în Excel, putem folosi opțiunea text în coloane sau putem folosi o opțiune numită Flash Fill. Acest lucru este extrem de util în VBA.

Luați următoarele date, de exemplu:

Putem tasta numele de familie „Tolley” în celula B2 și apoi să folosim o macro pentru a completa Flash restul datelor.

1234567 Sub FlashFill ()Selecție oprită 1 ca intervalSelecție dim2 ca intervalSet Selection1 = Range („B2: B2”)Set Selection2 = Range („B2: B15”)Selecție 1. Destinație de completare automată: = Selecție2, tip: = xlFlashFillSfârșitul Sub

Putem repeta apoi aceste coloane C, D și E pentru a obține datele rămase.

1234567891011 Set Selection1 = Range („C2: C2”)Set Selection2 = Range ("C2: C15")Selecție 1. Destinație AutoFill: = Selecție2, Tip: = xlFlashFillSet Selection1 = Range ("D2: D2")Set Selection2 = Range ("D2: D15")Selecție 1. Destinație de completare automată: = Selecție2, tip: = xlFlashFillSet Selection1 = Range („E2: E2”)Set Selection2 = Range ("E2: E15")Selecție 1. Destinație AutoFill: = Selecție2, Tip: = xlFlashFill

Fiecare coloană se va umple apoi cu datele corespunzătoare pe baza valorii din rândul 2.

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave