Autouzupełnianie w VBA
W tym artykule pokazano, jak używać autouzupełniania w języku VBA.
Autouzupełnianie to świetne narzędzie w programie Excel, gdy dane są powtarzalne lub sekwencyjne (np. dni tygodnia, daty, miesiące w roku itp.). Zwykle wypełniamy pierwsze kilka komórek wymaganymi danymi, a następnie używamy Autouzupełniania, aby skopiować wymagane dane do wybranego zakresu.
Wszystko to można zrobić za pomocą makra VBA.
Autouzupełnianie przy użyciu liczb przyrostowych
Po pierwsze, w naszym kodzie możemy zadeklarować dwie zmienne Range.
Selection1 to zakres z danymi do autouzupełnienia - na przykład 1 i 2.
Wybór2 to Cały zakres do autouzupełnienia, obejmuje pierwszy zakres plus puste miejsca do autouzupełnienia.
Następnie używamy metody Autouzupełniania, aby wypełnić drugi zakres zaznaczenia.
123456789101112131415 | Publiczny Sub Moje autouzupełnianie()„przez easyexcel.net”„Zadeklaruj zmienne zakresu”Wybór przyciemniania1 jako zakresWybór przyciemniania2 jako zakres'Ustaw zmienne zakresu = odpowiadające im zakresyUstaw wybór1 = Arkusz1.Zakres("A1:A2")Ustaw zaznaczenie2 = Arkusz1.Zakres("A1:A12")„Autouzupełnianie”wybór1. Automatyczne wypełnianie miejsca docelowego:=wybór2Napis końcowy |
Następnie możemy uruchomić makro do zakresu autouzupełniania (A1:A12).
Kiedy używamy metody Autouzupełniania, możemy wybrać rodzaj autouzupełniania, który chcemy wykonać. W powyższym przykładzie nie określiliśmy typu autouzupełniania, co oznacza, że został użyty typ domyślny - w tym przypadku zwiększenie liczb o 1 w każdym wierszu.
Autouzupełnianie za pomocą miesięcy
Makro do autouzupełniania za pomocą miesięcy jest prawie identyczne z tym, które służy do zwiększania liczb, z jednym ważnym wyjątkiem.
1234567891011 | Publiczne podrzędne AutouzupełnianieMiesiące()„przez easyexcel.net”„Zadeklaruj zmienne zakresu”Wybór przyciemniania1 jako zakresWybór przyciemniania2 jako zakres'Ustaw zmienne zakresu = odpowiadające im zakresyUstaw wybór1 = Arkusz1.Zakres("A1:A2")Ustaw zaznaczenie2 = Arkusz1.Zakres("A1:A12")'Autouzupełnianie miesięcyMiejsce docelowe autouzupełniania:=wybór2, Typ:=xlWypełnianieMiesięcyNapis końcowy |
Kiedy wypełniamy typ autouzupełniania, otrzymujemy do wyboru kilka stałych Excela. Jeśli to pominiemy, Excel określi rodzaj danych do uzupełnienia na podstawie danych oryginalnych.
Excel może pobierać standardowe serie, takie jak miesiące, dni tygodnia i liczby przyrostowe, bez konieczności używania argumentu Typ.
Autouzupełnianie przy użyciu xlFillCopy
Jeśli chcemy użyć makra Autouzupełniania do skopiowania informacji do nowych komórek, możemy użyć stałej xlFillCopy.
1234567 | Publiczna funkcja AutouzupełnianiaKopiuj()Wybór przyciemniania1 jako zakresWybór przyciemniania2 jako zakresUstaw wybór1 = Arkusz1.Zakres("A1:A1")Ustaw zaznaczenie2 = Arkusz1.Zakres("A1:A12")Selection1.AutoFill Destination:=Selection2, Type:=xlFillCopyNapis końcowy |
Uruchomienie tego makra spowoduje skopiowanie danych z zakresu („A1”) do zakresu („A1: A12”), zamiast automatycznego wypełniania komórek kolejnymi miesiącami od „sty”.
Autouzupełnianie przy użyciu xlFlashFill
Kiedy musimy przekonwertować tekst na kolumny w programie Excel, możemy użyć opcji tekstu na kolumny lub użyć opcji o nazwie Flash Fill. Jest to niezwykle przydatne w VBA.
Weźmy na przykład następujące dane:
Możemy wpisać nazwisko „Tolley” w komórce B2, a następnie użyć makra do Flashfill pozostałych danych.
1234567 | Sub FlashFill()Wybór przyciemniania1 jako zakresWybór przyciemniania2 jako zakresUstaw wybór1 = Zakres("B2:B2")Ustaw wybór2 = Zakres("B2:B15")Selection1.AutoFill Destination:=Selection2, Type:=xlFlashFillNapis końcowy |
Następnie możemy powtórzyć to w kolumnach C, D i E, aby uzyskać pozostałe dane.
1234567891011 | Ustaw wybór1 = Zakres("C2:C2")Ustaw wybór2 = Zakres("C2:C15")Selection1.AutoFill Destination:=Selection2, Type:=xlFlashFillUstaw Wybór1 = Zakres("D2:D2")Ustaw wybór2 = Zakres("D2:D15")Selection1.AutoFill Destination:=Selection2, Type:=xlFlashFillUstaw Wybór1 = Zakres("E2:E2")Ustaw wybór2 = Zakres("E2:E15")Selection1.AutoFill Destination:=Selection2, Type:=xlFlashFill |
Każda kolumna zostanie następnie wypełniona odpowiednimi danymi na podstawie wartości w wierszu 2.