Автозаполнение формулы в последней строке с помощью Excel VBA (5 примеров)

  • Поделись Этим
Hugh West

Если вы давно работаете с Microsoft Excel, вы знаете о важности автозаполнения. Для того чтобы скопировать формулу через строку или столбец, мы используем этот метод. Теперь мы можем использовать его вручную с помощью мыши. Но если у вас большая строка с данными, будет трудно скопировать любую формулу в последнюю строку или столбец. Вы можете использовать код VBA для автозаполнения формулы в последнюю строку или столбец с помощьюлегкость.

В этом уроке вы научитесь автозаполнению формулы в последней строке в Excel с помощью кодов VBA. В этом уроке будут приведены подходящие примеры и иллюстрации, так что оставайтесь с нами.

Скачать Рабочую тетрадь для практических занятий

Формула автозаполнения последней строки.xlsm

Что такое автозаполнение в Excel?

Итак, автозаполнение - это встроенная функция Microsoft Excel, которая позволяет пользователям автоматически заполнять оставшиеся строки или столбцы значениями, форматами или формулами. Ее можно определить, если подвести курсор к правому нижнему углу любой ячейки. Мы называем ее обработчиком автозаполнения Excel.

Взгляните на следующий снимок экрана:

Здесь вы видите два числа. Остальные строки мы заполним с помощью автозаполнения в Excel.

Сначала выделите диапазон ячеек B5:B6. После этого в правом нижнем углу появится ручка автозаполнения.

Теперь перетащите эту ручку автозаполнения вниз.

Как вы можете видеть, Excel автоматически заполнил остальные ячейки. Это базовое использование автозаполнения в Excel.

Как использовать автозаполнение с помощью Excel VBA

Если в заданном диапазоне имеется большое количество строк или столбцов, вам придется перетаскивать ручку автозаполнения на последнюю строку или столбец. Это очень хлопотный процесс. К счастью, вы можете свести его к минимуму с помощью кодов VBA в Excel. Вы можете использовать код VBA для автозаполнения ячеек значениями, формулами или форматами.

Общий синтаксис:

Диапазон.Автозаполнение Назначение, Тип

Вот,

Range("B5"): Ячейка, в которой находится основной узор для заполнения остальной части серии.

Место назначения: Диапазон ячеек, которые необходимо заполнить серией шаблонов.

Type как xlAutoFillType: Тип серийного заполнения. Существуют различные типы автозаполнения, которые вы можете выбрать.

Читать далее: Как использовать автозаполнение VBA в Excel

4 типа автозаполнения в Excel VBA

В этом разделе я расскажу о некоторых типах автозаполнения. Мы уже видели, что мы можем выбрать любой тип автозаполнения с помощью функции xlAutoFillType. Здесь я показываю вам несколько примеров этого.

1. xlFillDefault

Мы уже видели этот тип автозаполнения в предыдущем примере.

Взгляните на снимок экрана:

Введите следующий код VBA для автозаполнения остальных ячеек:

 Sub xlDefault_type() Range("B5:B6").AutoFill Destination:=Range("B5:B11"), Type:=xlFillDefault End Sub 

Теперь запустите макрос VBA, после чего вы увидите следующее:

Он автоматически заполняет остальные ячейки с помощью макроса VBA.

2. xlFillCopy

Для копирования тех же значений можно использовать тип xlFillCopy в типе автозаполнения.

Взгляните на снимок экрана:

Введите следующий код VBA для автозаполнения остальных ячеек:

 Sub xlFillCopy_type() Range("B5:B6").AutoFill Destination:=Range("B5:B11"), Type:=xlFillCopy End Sub 

Теперь запустите макрос VBA, после чего вы увидите следующее:

Excel заполняет остальные ячейки тем же шаблоном значений.

3. xlFillMonths

Вы также можете заполнить месяцы, используя xlFillMonths тип автозаполнения.

Взгляните на снимок экрана:

Здесь мы ввели два месяца январь и февраль.

Введите следующий код VBA для автозаполнения остальных ячеек:

 Sub xlFillMonths_type() Range("B5:B6").AutoFill Destination:=Range("B5:B11"), Type:=xlFillMonths End Sub 

Теперь запустите макрос VBA, после чего вы увидите следующее:

Excel автоматически понимает шаблоны и заполняет их.

4. xlFillFormats

Вы также можете копировать форматы в другие ячейки с помощью автозаполнения VBA. Для этого необходимо использовать xlFillFormats тип автозаполнения.

Взгляните на снимок экрана:

Здесь мы заполнили две ячейки некоторыми цветами.

Теперь введите следующий код VBA для автозаполнения остальных ячеек:

 Sub xlFillFormats_type() Range("B5:B6").AutoFill Destination:=Range("B5:B11"), Type:=xlFillFormats End Sub 

Теперь запустите макрос VBA, после чего вы увидите следующее:

Как вы можете видеть, наш макрос VBA использует автозаполнение для эффективного заполнения строк столбца B.

Читать далее: Как автоматически заполнить месяцы в Excel

5 примеров с формулой автозаполнения последней строки в Excel VBA

1. VBA для автозаполнения формулы в последней использованной строке

Аналогично, вы можете автозаполнить формулу с помощью VBA. если вы прочитали предыдущие разделы, вы легко сможете это сделать. проблема возникает, когда вам нужно автозаполнить формулу до последней строки. вы должны сначала определить последнюю используемую строку. после этого код VBA автоматически заполнит их.

Взгляните на следующий набор данных:

Здесь у нас есть набор данных продаж некоторых продавцов. Наша цель - добавить продажи января и февраля в столбец Total. После этого мы будем использовать метод автозаполнения с помощью VBA для последней использованной строки в Excel.

Чтобы выполнить это, введите следующий код:

 Sub last_used_row() Dim last_row As Long last_row = Cells(Rows.Count, 2).End(xlUp).Row Range("E5").Formula = "=SUM(C5:D5)" Range("E5").AutoFill Destination:=Range("E5:E" & last_row) End Sub 

last_row = Cells(Rows.Count, 2).End(xlUp).Row: Он возвращает последнюю использованную строку из столбца B. Вы можете выбрать любой столбец из вашего набора данных.

Range("E5").Formula = "=SUM(C5:D5)": Мы добавляем продажи Клетка C5 и D5.

Range("E5").AutoFill Destination:=Range("E5:E" & last_row): После получения результата, мы используем автозаполнение. Оно начинает автозаполнение с Ячейка E5 к последней использованной строке, которую мы получили ранее.

Теперь запустите макрос VBA. После этого вы увидите следующий результат:

Как вы видите, наш код VBA добавляет первый результат и автозаполнение формулы в последнюю строку Excel.

Читать далее: Как заполнить данными до последней строки в Excel

2. VBA Автозаполнение из ActiveCell в последнюю строку

Теперь, если вы не хотите использовать конкретный диапазон в методе автозаполнения, вы можете использовать значения, формулы или форматы активной ячейки. Когда вы щелкаете по ячейке и хотите автозаполнить остальные строки формулой активной ячейки, используйте этот метод.

Это аналогично предыдущему примеру. Мы используем предыдущий набор данных:

Теперь мы добавим продажи за январь и февраль и автозаполним формулу в последней строке с помощью Excel VBA.

Теперь введите следующий код:

 Sub autofill_active_cell() Dim last_row As Long last_row = Cells(Rows.Count, 2).End(xlUp).Row ActiveCell.Formula = "=SUM(C5:D5)" ActiveCell.AutoFill Destination:=Range(ActiveCell.Address & ":E" & last_row) End Sub 

last_row = Cells(Rows.Count, 2).End(xlUp).Row: Он возвращает последнюю использованную строку из столбца B. Вы можете выбрать любой столбец из вашего набора данных.

ActiveCell.Formula = "=SUM(C5:D5)": Мы добавляем продажи Клетка C5 и D5 в выбранной ячейке.

ActiveCell.AutoFill Destination:=Range(ActiveCell.Address & ":E" & last_row): После получения результата мы используем автозаполнение. Оно начинает автозаполнение от активной ячейки до последней использованной строки, которую мы получили ранее.

Теперь выберите Ячейка E5 .

После этого запустите макрос VBA, чтобы добавить формулу и автозаполнение в последнюю строку.

Как видите, мы успешно использовали макрос VBA для автозаполнения формулы до последней строки.

Похожие чтения

  • Как повторить строки определенное количество раз в Excel (4 способа)
  • Автоматическое нумерование строк в Excel (8 методов)
  • Как заполнить столбец в Excel одним и тем же значением (9 приемов)
  • Применение ярлыка автозаполнения в Excel (7 методов)

3. Автозаполнение последней строки с использованием динамического диапазона с помощью Excel VBA

Ранее мы показали вам несколько макросов VBA для автозаполнения до последней строки в Excel. В тех примерах мы уже использовали динамические диапазоны.

Чтобы понять, что такое статические диапазоны, посмотрите на следующий код:

 Sub last_used_row() Range("E5").Formula = "=SUM(C5:D5)" Range("E5").AutoFill Destination:=Range("E5:E11") End Sub 

По сути, мы сказали Excel ввести формулу в Ячейка E5 и автозаполнить его из Ячейка E5 на Ячейка E11 Здесь мы указали диапазон. А если вы добавите больше строк? В этом случае наш VBA не будет автозаполнять дополнительные строки, потому что мы уже сказали ему автозаполнять определенный диапазон.

Для решения этой проблемы я придумал решение, которое может снимать динамический диапазон:

 Sub last_used_row() Dim last_row As Long last_row = Cells(Rows.Count, 2).End(xlUp).Row Range("E5").Formula = "=SUM(C5:D5)" Range("E5").AutoFill Destination:=Range("E5:E" & last_row) End Sub 

Как вы можете видеть, мы сначала находим последнюю строку с помощью этой строки кода:

 last_row = Cells(Rows.Count, 2).End(xlUp).Row 

После этого мы автозаполняем последнюю строку, используя динамический диапазон:

 Range("E5").AutoFill Destination:=Range("E5:E" & last_row) 

Независимо от того, сколько строк вы добавите в свой набор данных, этот код VBA успешно определит их и автоматически заполнит формулой.

Динамический диапазон в основном означает, что вам не нужно вводить диапазон вручную. Excel будет обновлять его время от времени.

Читать далее: Excel VBA: метод автозаполнения класса диапазона не работает

4. Автозаполнение последнего столбца в Excel с помощью VBA

Если вы прочитали предыдущие разделы об автозаполнении последней строки, то вы можете легко автозаполнить последний столбец. Вам нужно просто найти номер последнего столбца и автозаполнить его с помощью Excel VBA.

Взгляните на следующий набор данных:

Здесь у нас есть набор данных, который представляет бюджет человека за 3 месяца. Теперь мы сложим расходы за все месяцы и автозаполним формулу в последнем столбце с помощью Excel VBA.

Теперь введите следующий код:

 Sub last_used_column() Dim last_row As Long last_column = Cells(6, Columns.Count).End(xlToLeft).Column Range("D9").Formula = "=SUM(D6:D8)" Range("D9").AutoFill Destination:=Range("D9", Cells(9, last_column)) End Sub 

last_column = Cells(6, Columns.Count).End(xlToLeft).Column: Он возвращает последний использованный столбец из строки 6. Вы можете выбрать любую строку для начала из вашего набора данных.

Range("D9").Formula = "=SUM(D6:D8)": Добавим расходы на три месяца (январь, февраль, март).

Range("D9").AutoFill Destination:=Range("D9", Cells(9, last_column)): После получения результата мы используем автозаполнение. Здесь наша основная строка - строка номер 9. Все наши данные будут в этой строке. Она начинает автозаполнение с колонки D в последний использованный столбец, который мы получили ранее с помощью последний_столбец .

После запуска макроса вы увидите следующий результат:

Как видите, мы успешно использовали VBA для автозаполнения формулы в последнем столбце Excel.

Читать далее: Как автоматически заполнить столбец в Excel

5. автозаполнение последовательных чисел в последней строке в Excel с помощью VBA

Вы также можете автозаполнять последовательные номера с помощью автозаполнения в VBA. Здесь вам нужно использовать xlFillSeries в типе автозаполнения. Excel поймет шаблон и заполнит их им.

Взгляните на следующий снимок экрана:

Здесь у нас есть несколько имен. И мы хотим последовательно присвоить им идентификатор. Для этого мы воспользуемся автозаполнением VBA.

Автозаполнение последовательных номеров со статическим диапазоном:

 Sub sequential_number_2() Range("C5").AutoFill Destination:=Range("C5:C11"), Type:=xlFillSeries End Sub 

После выполнения кода вы увидите результат:

Если вы хотите использовать динамический диапазон, то используйте следующий код:

 Sub sequential_number_1() Dim last_row As Long last_row = Cells(Rows.Count, 2).End(xlUp).Row Range("C5").AutoFill Destination:=Range("C5:C" & last_row), Type:=xlFillSeries End Sub 

last_row = Cells(Rows.Count, 2).End(xlUp).Row: Он возвращает последнюю использованную строку из столбца B.

Range("C5").AutoFill Destination:=Range("C5:C" & last_row), Type:=xlFillSeries: Он примет идентификатор Клетка C5 и автозаполнение до последней использованной строки в столбце C используя xlFillSeries ,

В обоих случаях вы получите одинаковый результат:

Как видите, мы успешно использовали код VBA для автозаполнения последовательных номеров в Excel.

Читать далее: Формулы Excel для заполнения последовательностей чисел, пропускающих скрытые строки

💬 О чем нужно помнить

Вы можете остановить автозаполнение различными способами, если вы этого не хотите. .

Вы не можете автозаполнять несколько строк и столбцов одновременно. Делайте это по очереди.

Заключение

В заключение я надеюсь, что этот учебник дал вам полезные знания по автозаполнению формулы в последней строке с помощью кодов VBA. Мы рекомендуем вам изучить и применить все эти инструкции к вашему набору данных. Скачайте рабочую тетрадь и попробуйте сами. Также не стесняйтесь оставлять отзывы в разделе комментариев. Ваши ценные отзывы поддерживают нашу мотивацию создавать такие учебники какэто.

Не забудьте заглянуть на наш сайт Exceldemy.com для решения различных проблем и задач, связанных с Excel.

Продолжайте изучать новые методы и расти!

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.