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.