Съдържание
Ако от известно време работите с Microsoft Excel, знаете значението на функцията AutoFill. За да копираме формула в целия ред или колона, използваме този метод. Сега можем да го използваме ръчно с мишката. Но ако имате голям ред с данни, ще бъде трудно да копирате някоя формула до последния ред или колона. Можете да използвате кода VBA за автоматично попълване на формула до последния ред или колона слекота.
В този урок ще се научите да попълвате автоматично формула на последния ред в Excel с помощта на кодове VBA. Този урок ще бъде на място с подходящи примери и подходящи илюстрации. Затова останете с нас.
Изтегляне на работна тетрадка за практика
Формула за автоматично попълване на последния ред.xlsm
Какво представлява автоматичното попълване в Excel?
Сега автоматичното попълване е вградена функция на Microsoft Excel, която позволява на потребителите автоматично да попълват останалите редове или колони със стойности, формати или формули. Можете да го идентифицирате, когато поставите курсора в долния десен ъгъл на всяка клетка. Наричаме го обработчик за автоматично попълване на Excel.
Разгледайте следната снимка на екрана:
Тук можете да видите две числа. Ще попълним останалите редове, като използваме автоматичното попълване в Excel.
Първо изберете обхвата от клетки B5:B6. След това ще видите дръжката за автоматично попълване в долния десен ъгъл.
Сега плъзнете тази дръжка за автоматично попълване надолу.
Както можете да видите, Excel автоматично запълни останалите клетки. Това е основното използване на автоматичното попълване в Excel.
Как да използвате AutoFill с Excel VBA
Ако имате голям брой редове или колони в даден диапазон, трябва да плъзнете надолу дръжката за автоматично попълване до последния ред или колона. Това е много забързан процес. За щастие можете да го сведете до минимум, като използвате кодовете VBA в Excel. Можете да използвате кода VBA за автоматично попълване на клетките със стойности, формули или формати.
Общият синтаксис:
Range.AutoFill Предназначение, Тип
Тук,
Range("B5"): Клетката, в която се намира основният модел за попълване на останалата част от серията.
Дестинация: Обхват на клетките, които искате да запълните с поредицата от шаблони.
Тип като xlAutoFillType: Типът на попълване на серията. Има различни типове автоматично попълване, които можете да изберете.
Прочетете повече: Как да използвате VBA AutoFill в 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: Методът за автоматично попълване на класа Range се провали
4. Автоматично попълване на последната колона в Excel с помощта на VBA
Ако сте прочели предишните раздели за автоматично попълване до последния ред, тогава можете лесно да попълвате автоматично до последната колона. Трябва просто да намерите номера на последната колона и да я попълвате автоматично с Excel VBA.
Разгледайте следния набор от данни:
Тук имаме набор от данни, който представлява тримесечен бюджет на едно лице. Сега ще добавим разходите за всички месеци и ще попълним автоматично формулата в последната колона, като използваме 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 към последната използвана колона, която получихме преди това чрез last_column .
След като стартирате макроса, ще видите следния изход:
Както виждате, успешно използвахме 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.
Продължавайте да изучавате нови методи и да се развивате!