Автоматично попълване с макрос - Примери за VBA код

Автоматично попълване във VBA

Тази статия демонстрира как да използвате AutoFill във VBA.

AutoFill е чудесен инструмент в Excel, когато данните се повтарят или ако са последователни (като дни от седмицата, дати, месеци в годината и т.н.). Обикновено попълваме първите няколко клетки с необходимите данни и след това използваме AutoFill, за да копираме необходимите данни до избрания диапазон.

Всичко това може да се направи с помощта на макрос VBA.

Автоматично попълване с увеличаване на числата

Първо, в нашия код можем да декларираме две променливи на Range.

Selection1 е диапазонът с данните за автоматично попълване - например 1 и 2.

Selection2 е цял диапазон за автоматично попълване, това включва първия диапазон плюс празните пространства за автоматично попълване.

След това използваме метода за автоматично попълване, за да запълним втория диапазон за избор.

123456789101112131415 Публичен под MyAutoFill ()'от easyexcel.net'Декларирайте променливи на диапазонаDim selection 1 As RangeDim selection2 As Range'Задаване на променливи на диапазона = съответните им диапазониSet selection1 = Sheet1.Range ("A1: A2")Set selection2 = Sheet1.Range ("A1: A12")„Автоматично попълванеизбор 1. Дестинация за автоматично попълване: = избор2End Sub

След това можем да стартираме макроса до Autofill Range (A1: A12).

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

Автоматично попълване с използване на месеци

Макросът за автоматично попълване с месеци е почти идентичен с този, използван за увеличаване на числата, с едно важно изключение.

1234567891011 Публичен под автозапълванеМесеци ()'от easyexcel.net'Декларирайте променливи на диапазонаDim selection 1 As RangeDim selection2 As Range'Задаване на променливи на диапазона = съответните им диапазониSet selection1 = Sheet1.Range ("A1: A2")Set selection2 = Sheet1.Range ("A1: A12")„Автоматично попълване на месецитеДестинация за автоматично попълване: = selection2, Тип: = xlFillMonthsEnd Sub

Когато попълваме типа на автоматично попълване, ни се дават няколко Константи на Excel, от които да избираме. Ако оставим това, Excel ще определи вида на данните, които трябва да попълни от първоначалните данни.

Excel е в състояние да вземе стандартни серии като месеци, дни от седмицата и допълнителни числа, без да е необходимо да използва аргумента Type.

Автоматично попълване с помощта на xlFillCopy

Ако искаме да използваме макрос за автоматично попълване, за да копираме информацията до нови клетки, можем да използваме константата xlFillCopy.

1234567 Публично под автозапълванеCopy ()Dim Selection1 As RangeDim Selection2 As RangeSet Selection1 = Sheet1.Range ("A1: A1")Set Selection2 = Sheet1.Range ("A1: A12")Избор 1. Дестинация за автоматично попълване: = Селекция2, Тип: = xlFillCopyEnd Sub

Изпълнението на този макрос би копирало данните в диапазон (“A1”) до Range (“A1: A12”), вместо автоматично запълване на клетките с последващи месеци от “Jan”.

Автоматично попълване с помощта на xlFlashFill

Когато трябва да преобразуваме текст в колони в Excel, можем или да използваме опцията текст в колони, или можем да използваме опция, наречена Flash Fill. Това е изключително полезно във VBA.

Вземете например следните данни:

Можем да напишем фамилията „Tolley“ в клетка B2 и след това да използваме макрос, за да попълним Flash останалите данни.

1234567 Sub FlashFill ()Dim Selection1 As RangeDim Selection2 As RangeSet Selection1 = Range ("B2: B2")Set Selection2 = Range ("B2: B15")Избор 1. Дестинация за автоматично попълване: = Селекция2, Тип: = xlFlashFillEnd Sub

След това можем да повторим това, колони C, D и E, за да получим останалите данни.

1234567891011 Set Selection1 = Range ("C2: C2")Set Selection2 = Range ("C2: C15")Избор 1. Дестинация за автоматично попълване: = Селекция2, Тип: = xlFlashFillSet Selection1 = Range ("D2: D2")Set Selection2 = Range ("D2: D15")Избор 1. Дестинация за автоматично попълване: = Селекция2, Тип: = xlFlashFillSet Selection1 = Range ("E2: E2")Set Selection2 = Range ("E2: E15")Избор 1. Дестинация за автоматично попълване: = Селекция2, Тип: = xlFlashFill

След това всяка колона ще се запълни със съответните данни въз основа на стойността в ред 2.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave