Автозаповнення у VBA
У цій статті показано, як використовувати функцію автозаповнення у VBA.
Автозаповнення - чудовий інструмент у Excel, коли дані повторюються або є послідовними (наприклад, дні тижня, дати, місяці в році тощо). Зазвичай ми заповнюємо перші пару клітинок необхідними даними, а потім використовуємо функцію автозаповнення, щоб скопіювати необхідні дані до вибраного діапазону.
Все це можна зробити за допомогою макросу VBA.
Автозаповнення за допомогою збільшення чисел
По -перше, у нашому коді ми можемо оголосити дві змінні діапазону.
Вибір 1 - це діапазон з даними для автоматичного заповнення - наприклад, 1 і 2.
Вибір 2 - це цілий діапазон для автозаповнення, це включає перший діапазон плюс порожні місця для автозаповнення.
Потім ми використовуємо метод автозаповнення, щоб заповнити другий діапазон вибору.
123456789101112131415 | Відкритий суб MyAutoFill ()'від easyexcel.net'Оголошення змінних діапазонуВибір яскравості1 Як діапазонВибір затемнення 2 Як діапазон'Змінні діапазони = їх відповідні діапазониВстановити вибір1 = Аркуш 1. Діапазон ("A1: A2")Встановити вибір2 = Аркуш 1. Діапазон ("A1: A12")'Автозаповненнявибір 1. Місце призначення автоматичного заповнення: = вибір2End Sub |
Потім ми можемо запустити макрос до діапазону автозаповнення (A1: A12).
Коли ми використовуємо метод автозаповнення, ми можемо вибрати тип автозаповнення, який ми хочемо виконати. У наведеному вище прикладі ми не вказали тип автозаповнення, що означає, що використовувався тип за замовчуванням - у цьому випадку збільшуючи числа на 1 у кожному рядку.
Автозаповнення за місяцями
Макрос для автоматичного заповнення за місяцями майже ідентичний тому, який використовується для збільшення чисел, за одним важливим винятком.
1234567891011 | Публічне допоміжне автозаповненняМісяці ()'від easyexcel.net'Оголошення змінних діапазонуВибір яскравості1 Як діапазонВибір яскравості 2 як діапазон'Змінні діапазони = їх відповідні діапазониВстановити вибір1 = Аркуш 1. Діапазон ("A1: A2")Встановити вибір2 = Аркуш 1. Діапазон ("A1: A12")'Автозаповнення місяцівПризначення автозаповнення: = вибір2, Тип: = xlFillMonthsEnd Sub |
Коли ми заповнюємо тип автозаповнення, нам надається декілька констант Excel на вибір. Якщо ми пропустимо це, Excel визначить тип даних для заповнення з наведених вихідних даних.
Excel може підбирати стандартні серії, такі як місяці, дні тижня та додаткові числа, проте не потрібно використовувати аргумент Тип.
Автозаповнення за допомогою xlFillCopy
Якщо ми хочемо використовувати макрос автозаповнення, щоб скопіювати інформацію до нових осередків, ми можемо використовувати константу xlFillCopy.
1234567 | Загальнодоступне автозаповнення ()Dim Selection1 As RangeDim Selection2 As RangeВстановити Selection1 = Sheet1.Range ("A1: A1")Встановити Selection2 = Sheet1.Range ("A1: A12")Вибір 1. Призначення автоматичного заповнення: = Вибір2, Тип: = xlFillCopyEnd Sub |
Запуск цього макросу призведе до копіювання даних у діапазоні (“A1”) до діапазону (“A1: A12”), а не до автоматичного заповнення клітинок наступними місяцями з “січня”.
Автозаповнення за допомогою xlFlashFill
Коли нам потрібно перетворити текст у стовпці в Excel, ми можемо або скористатися опцією текст у стовпці, або ми можемо скористатися опцією, яка називається Flash Fill. Це надзвичайно корисно у VBA.
Візьмемо, наприклад, такі дані:
Ми можемо набрати прізвище “Толлі” у комірці В2, а потім використати макрос, щоб заповнити решту даних Flash.
1234567 | Додатковий FlashFill ()Dim Selection1 As RangeDim Selection2 As RangeВстановити вибір1 = діапазон ("B2: B2")Встановити вибір2 = діапазон ("B2: B15")Вибір 1. Місце призначення автоматичного заповнення: = Вибір2, Тип: = xlFlashFillEnd Sub |
Потім ми можемо повторити це, стовпці C, D та E, щоб отримати решту даних.
1234567891011 | Встановити вибір1 = діапазон ("C2: C2")Встановити вибір2 = діапазон ("C2: C15")Вибір 1. Місце призначення автоматичного заповнення: = Вибір2, Тип: = xlFlashFillВстановити вибір1 = діапазон ("D2: D2")Встановити вибір2 = діапазон ("D2: D15")Вибір 1. Місце призначення автоматичного заповнення: = Вибір2, Тип: = xlFlashFillВстановити вибір1 = діапазон ("E2: E2")Встановити вибір2 = діапазон ("E2: E15")Вибір 1. Місце призначення автоматичного заповнення: = Вибір2, Тип: = xlFlashFill |
Кожен стовпець потім заповнюється відповідними даними на основі значення у рядку 2.