Automatické vyplňování ve VBA
Tento článek ukazuje, jak používat automatické vyplňování ve VBA.
AutoFill je skvělý nástroj v Excelu, když se data opakují nebo jsou sekvenční (jako dny v týdnu, data, měsíce v roce atd.). Prvních pár buněk bychom normálně vyplnili požadovanými údaji a poté pomocí funkce Automatické vyplňování zkopírovali požadovaná data do vybraného rozsahu.
To vše lze provést pomocí makra VBA.
Automatické vyplňování pomocí přírůstkových čísel
Za prvé, v našem kódu můžeme deklarovat dvě Range proměnné.
Selection1 je rozsah s údaji, které se mají automaticky vyplnit - například 1 a 2.
Selection2 je celý rozsah pro automatické vyplňování, zahrnuje první rozsah plus mezery pro automatické vyplňování.
Poté použijeme metodu AutoFill k vyplnění druhého rozsahu výběru.
123456789101112131415 | Veřejné Sub MyAutoFill ()'od easyexcel.net"Deklarujte rozsah proměnných."Dim selection1 As RangeDim selection2 As Range'Nastavit proměnné rozsahu = jejich příslušné rozsahyNastavit výběr1 = list1.Range ("A1: A2")Nastavit výběr2 = list1.Range ("A1: A12")„Automatické vyplňováníselection1.AutoFill Destination: = selection2End Sub |
Potom můžeme spustit makro na Rozsah automatického vyplňování (A1: A12).
Když používáme metodu automatického vyplňování, můžeme vybrat typ automatického vyplňování, které chceme provést. Ve výše uvedeném příkladu jsme nezadali typ automatického vyplňování, což znamená, že byl použit výchozí typ - v tomto případě zvýšení čísel o 1 na každém řádku.
Automatické vyplňování pomocí měsíců
Makro pro automatické vyplňování pomocí měsíců je téměř totožné s tím, které se používá pro zvýšení čísel, s jednou důležitou výjimkou.
1234567891011 | Veřejné dílčí automatické vyplňování měsíců ()'od easyexcel.net"Deklarujte rozsah proměnných."Dim selection1 As RangeDim selection2 As Range'Nastavit proměnné rozsahu = jejich příslušné rozsahyNastavit výběr1 = list1.Range ("A1: A2")Nastavit výběr2 = list1.Range ("A1: A12")„Vyplňte měsíceCíl automatického vyplňování: = výběr2, typ: = xlFillMonthsEnd Sub |
Když vyplníme typ automatického vyplňování, dostaneme na výběr z několika konstant aplikace Excel. Pokud to vynecháme, Excel určí typ dat, která se mají vyplnit, z původních dat.
Excel je schopen zachytit standardní řady, jako jsou měsíce, dny v týdnu a přírůstková čísla, aniž by však bylo nutné použít argument Typ.
Automatické vyplňování pomocí xlFillCopy
Pokud chceme použít makro AutoFill ke zkopírování informací dolů do nových buněk, můžeme použít konstantu xlFillCopy.
1234567 | Veřejné Sub AutoFillCopy ()Dim Selection1 As RangeDim Selection2 As RangeNastavit výběr1 = list1.Range ("A1: A1")Nastavit výběr2 = list1.Range ("A1: A12")Selection1.AutoFill Destination: = Selection2, Type: = xlFillCopyEnd Sub |
Spuštěním tohoto makra by se zkopírovala data v rozsahu („A1“) až do rozsahu („A1: A12“), a nikoli automatické vyplňování buněk následujícími měsíci od „ledna“.
Automatické vyplňování pomocí xlFlashFill
Když potřebujeme převést text na sloupce v Excelu, můžeme buď použít možnost text na sloupce, nebo můžeme použít možnost s názvem Flash Fill. To je ve VBA velmi užitečné.
Vezměte si například následující data:
Do buňky B2 můžeme zadat příjmení „Tolley“ a poté pomocí makra Flashfill vyplnit ostatní data.
1234567 | Sub FlashFill ()Dim Selection1 As RangeDim Selection2 As RangeNastavit výběr1 = rozsah ("B2: B2")Nastavit výběr 2 = rozsah ("B2: B15")Selection1.AutoFill Destination: = Selection2, Type: = xlFlashFillEnd Sub |
Poté můžeme toto opakovat, čímž získáme zbývající data ve sloupcích C, D a E.
1234567891011 | Nastavit výběr 1 = rozsah ("C2: C2")Nastavit výběr 2 = rozsah ("C2: C15")Selection1.AutoFill Destination: = Selection2, Type: = xlFlashFillNastavit výběr 1 = rozsah ("D2: D2")Nastavit výběr2 = rozsah ("D2: D15")Selection1.AutoFill Destination: = Selection2, Type: = xlFlashFillNastavit výběr 1 = rozsah ("E2: E2")Nastavit výběr2 = rozsah ("E2: E15")Selection1.AutoFill Destination: = Selection2, Type: = xlFlashFill |
Každý sloupec se pak vyplní příslušnými údaji na základě hodnoty v řádku 2.