Автозаполнение с помощью макроса - примеры кода VBA

Автозаполнение в VBA

В этой статье показано, как использовать автозаполнение в VBA.

Автозаполнение - отличный инструмент в Excel, когда данные являются повторяющимися или последовательными (например, дни недели, даты, месяцы года и т. Д.). Обычно мы заполняем первую пару ячеек необходимыми данными, а затем используем автозаполнение для копирования необходимых данных в выбранный диапазон.

Все это можно сделать с помощью макроса VBA.

Автозаполнение с использованием возрастающих чисел

Во-первых, в нашем коде мы можем объявить две переменные Range.

Selection1 - это диапазон данных для автозаполнения, например 1 и 2.

Selection2 - это весь диапазон для автозаполнения, это включает первый диапазон плюс пробелы для автозаполнения.

Затем мы используем метод AutoFill, чтобы заполнить второй диапазон выбора.

123456789101112131415 Публичная подписка MyAutoFill ()Автор easyexcel.net'Объявить переменные диапазонаВыбор яркости 1 как диапазонВыбор затемнения 2 как диапазон'Установить переменные диапазона = их соответствующие диапазоныУстановить selection1 = Sheet1.Range ("A1: A2")Установить selection2 = Sheet1.Range ("A1: A12")'Автозаполнениеselection1.AutoFill Destination: = selection2Конец подписки

Затем мы можем запустить макрос для диапазона автозаполнения (A1: A12).

Когда мы используем метод автозаполнения, мы можем выбрать тип автозаполнения, которое мы хотим выполнить. В приведенном выше примере мы не указали тип автозаполнения, что означает, что использовался тип по умолчанию - в данном случае увеличивая числа на 1 в каждой строке.

Автозаполнение с использованием месяцев

Макрос для автозаполнения с использованием месяцев почти идентичен макросу, который используется для приращения чисел, за одним важным исключением.

1234567891011 Public Sub AutoFillMonths ()Автор easyexcel.net'Объявить переменные диапазонаВыбор яркости 1 как диапазонВыбор затемнения 2 как диапазон'Установить переменные диапазона = их соответствующие диапазоныУстановить selection1 = Sheet1.Range ("A1: A2")Установить selection2 = Sheet1.Range ("A1: A12")'Автозаполнение месяцевНазначение автозаполнения: = selection2, Type: = xlFillMonthsКонец подписки

Когда мы указываем тип автозаполнения, нам предоставляется выбор из нескольких констант Excel. Если мы не укажем это значение, Excel определит тип данных для заполнения из исходных данных.

Однако Excel может выбирать стандартные серии, такие как месяцы, дни недели и инкрементные числа, без необходимости использовать аргумент Тип.

Автозаполнение с использованием xlFillCopy

Если мы хотим использовать макрос автозаполнения для копирования информации в новые ячейки, мы можем использовать константу xlFillCopy.

1234567 Общедоступная подпрограмма AutoFillCopy ()Выбор затемнения1 как диапазонВыбор затемнения2 как диапазонУстановите Selection1 = Sheet1.Range ("A1: A1")Установите Selection2 = Sheet1.Range ("A1: A12")Selection1.AutoFill Назначение: = Selection2, Тип: = xlFillCopyКонец подписки

Запуск этого макроса скопирует данные из диапазона («A1») вниз в диапазон («A1: A12»), а не автоматически заполнит ячейки последующими месяцами с «января».

Автозаполнение с использованием xlFlashFill

Когда нам нужно преобразовать текст в столбцы в Excel, мы можем либо использовать параметр «Текст в столбцы», либо параметр, называемый «Flash Fill». Это чрезвычайно полезно в VBA.

Возьмем для примера следующие данные:

Мы можем ввести фамилию «Толли» в ячейку B2, а затем использовать макрос для Flash-заполнения остальных данных.

1234567 Подложка FlashFill ()Выбор затемнения1 как диапазонВыбор затемнения2 как диапазонУстановите Selection1 = Range ("B2: B2")Установить Selection2 = Range ("B2: B15")Selection1.AutoFill Назначение: = Selection2, Тип: = xlFlashFillКонец подписки

Затем мы можем повторить это для столбцов C, D и E, чтобы получить оставшиеся данные.

1234567891011 Установить Selection1 = Range ("C2: C2")Установить Selection2 = Range ("C2: C15")Selection1.AutoFill Назначение: = Selection2, Тип: = xlFlashFillУстановить Selection1 = Range ("D2: D2")Установить Selection2 = Range ("D2: D15")Selection1.AutoFill Назначение: = Selection2, Тип: = xlFlashFillУстановить Selection1 = Range ("E2: E2")Установите Selection2 = Range ("E2: E15")Selection1.AutoFill Назначение: = Selection2, Тип: = xlFlashFill

Затем каждый столбец заполнится соответствующими данными на основе значения в строке 2.

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave