За да се улесни въвеждането на данни в таблица в Excel, можете да използвате специални формуляри, които ще ви помогнат да ускорите процеса на попълване на таблицата с информация. В Excel има вграден инструмент, който ви позволява да попълните подобен метод. Също така, потребителят може да създаде свой собствен вариант на формуляра, който да бъде максимално адаптиран към неговите нужди, като се използва макрос за това. Нека да разгледаме различните приложения на тези полезни инструменти за пълнене в Excel.
съдържание
Формата на попълване е обект с полета, чиито имена съответстват на имената на колоните на колоните на таблицата, която трябва да бъде попълнена. В тези полета трябва да въведете данни и те незабавно ще бъдат добавени към таблицата с нов ред. Формулярът може да служи като отделен вграден инструмент на Excel и може да бъде поставен директно върху листа като диапазон, ако той е създаден от потребителя.
Сега нека разгледаме как да използваме тези два вида инструменти.
На първо място, нека разберем как да използвате вградения формуляр, за да въведете данните в Excel.
В полето "Избор на команди от" задайте стойността на "Команди не на лента" . По-нататък от списъка с команди, намиращи се в азбучен ред, намираме и избираме позицията "Формуляр ..." . След това кликнете върху бутона "Добави" .
Освен това, използвайки макрос и редица други инструменти, е възможно да създадете свой собствен формуляр, за да запълните пространството в таблицата. Той ще бъде създаден директно върху листа и ще представлява неговия диапазон. С помощта на този инструмент, самият потребител ще може да осъзнае възможностите, които счита за необходими. На функционално ниво той практически няма да бъде по-нисък от вградения аналог на Excel и в някои случаи може да го надхвърли. Единственият недостатък е, че за всеки масив таблица трябва да създадете отделен формуляр и да не използвате същия шаблон, колкото е възможно със стандартната версия.
Има още една възможност да изключите филтъра. В този случай дори не е нужно да отивате в друг раздел, оставайки в раздела "Начало" . След като изберете клетката в областта на таблицата на лентата в блока за настройки "Редактиране", кликнете върху иконата "Сортиране и филтриране" . В списъка, който се показва, изберете елемента "Филтриране" .
Втората колона на обекта за въвеждане на данни остава празна за момента. Веднага в него ще бъдат въведени стойности, за да се запълнят линиите на масата на основната маса.
В полето "Име" можете също да замените името с по-удобно. Но това не е необходимо. Разрешено е да се използват интервали, кирилица и други символи. За разлика от предишния параметър, който определя името на листа за програмата, този параметър задава името на листа, видим за потребителя от лентата за пряк достъп.
Както можете да видите, след това името на Лист 1 автоматично ще се промени в областта "Проект" , която току-що зададохме в настройките.
Sub DataEntryForm()
Dim nextRow As Long
nextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, 0).Row
With Producty
If .Range("A2").Value = "" And .Range("B2").Value = "" Then
nextRow = nextRow - 1
End If
Producty.Range("Name").Copy
.Cells(nextRow, 2).PasteSpecial Paste:=xlPasteValues
.Cells(nextRow, 3).Value = Producty.Range("Volum").Value
.Cells(nextRow, 4).Value = Producty.Range("Price").Value
.Cells(nextRow, 5).Value = Producty.Range("Volum").Value * Producty.Range("Price").Value
.Range("A2").Formula = "=IF(ISBLANK(B2), """", COUNTA($B$2:B2))"
If nextRow > 2 Then
Range("A2").Select
Selection.AutoFill Destination:=Range("A2:A" & nextRow)
Range("A2:A" & nextRow).Select
End If
.Range("Diapason").ClearContents
End With
End Sub
Но този код не е универсален, т.е. той е в непроменена форма, подходяща само за нашия случай. Ако искате да го адаптирате към вашите нужди, трябва да го промените. За да можете да го направите сами, нека да анализираме кой е този код, какво трябва да се замени и какво да не променим.
Така че, на първия ред:
Sub DataEntryForm()
"DataEntryForm" е името на самия макрос. Можете да го оставите така, както е, или да го замените с друг, което съответства на общите правила за създаване на имена на макроси (без интервали, само букви от латиницата и т.н.). Промяната на името няма да засегне нищо.
Където думата "Producty" се появява в кода , трябва да я замените с името, което сте задали преди това за вашия лист в полето "(Име)" в областта "Properties" на редактора на макроси. Естествено, това трябва да се направи само ако сте посочили листа по различен начин.
Сега помислете за този ред:
nextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, 0).Row
Цифрата "2" в този ред означава втората колона на листа. В тази графа има колона, наречена "Име на продукта" . На него ще разгледаме броя на редовете. Ето защо, ако във вашия случай подобна колона има различна поръчка в сметката, тогава трябва да въведете съответния номер. Стойността на "End (xlUp) .Offset (1, 0) .Row" във всеки случай, оставете непроменени.
След това помислете за реда
If .Range("A2").Value = "" And .Range("B2").Value = "" Then
"A2" са координатите на първата клетка, в която ще се показва номерирането на редовете. "B2" е координатите на първата клетка, която ще се използва за извеждане на данните ( "Име на стоките" ). Ако те са различни, въведете данните си вместо тези координати.
Преминаваме към линията
Producty.Range("Name").Copy
В ней параметр «Name» означат имя, которое мы присвоили полю «Наименование товара» в форме ввода.
В строках
.Cells(nextRow, 2).PasteSpecial Paste:=xlPasteValues
.Cells(nextRow, 3).Value = Producty.Range("Volum").Value
.Cells(nextRow, 4).Value = Producty.Range("Price").Value
.Cells(nextRow, 5).Value = Producty.Range("Volum").Value * Producty.Range("Price").Value
наименования «Volum» и «Price» означают названия, которые мы присвоили полям «Количество» и «Цена» в той же форме ввода.
В этих же строках, которые мы указали выше, цифры «2» , «3» , «4» , «5» означают номера столбцов на листе Excel, соответствующих колонкам «Наименование товара» , «Количество» , «Цена» и «Сумма» . Поэтому, если в вашем случае таблица сдвинута, то нужно указать соответствующие номера столбцов. Если столбцов больше, то по аналогии нужно добавить её строки в код, если меньше – то убрать лишние.
В строке производится умножение количества товара на его цену:
.Cells(nextRow, 5).Value = Producty.Range("Volum").Value * Producty.Range("Price").Value
Результат, как видим из синтаксиса записи, будет выводиться в пятый столбец листа Excel.
В этом выражении выполняется автоматическая нумерация строк:
If nextRow > 2 Then
Range("A2").Select
Selection.AutoFill Destination:=Range("A2:A" & nextRow)
Range("A2:A" & nextRow).Select
End If
Все значения «A2» означают адрес первой ячейки, где будет производиться нумерация, а координаты « A» — адрес всего столбца с нумерацией. Проверьте, где именно будет выводиться нумерация в вашей таблице и измените данные координаты в коде, если это необходимо.
В строке производится очистка диапазона формы ввода данных после того, как информация из неё была перенесена в таблицу:
.Range("Diapason").ClearContents
Не трудно догадаться, что ( «Diapason» ) означает наименование того диапазона, который мы ранее присвоили полям для ввода данных. Если вы дали им другое наименование, то в этой строке должно быть вставлено именно оно.
Дальнейшая часть кода универсальна и во всех случаях будет вноситься без изменений.
После того, как вы записали код макроса в окно редактора, следует нажать на значок сохранения в виде дискеты в левой части окна. Затем можно его закрывать, щелкнув по стандартной кнопке закрытия окон в правом верхнем углу.
В нашем случае, например, логично будет дать ей имя «Добавить» . Переименовываем и кликаем мышкой по любой свободной ячейке листа.
Прочетете още:
Как создать макрос в Excel
Как создать кнопку в Excel
В Экселе существует два способа применения формы заполнения данными: встроенная и пользовательская. Применение встроенного варианта требует минимум усилий от пользователя. Его всегда можно запустить, добавив соответствующий значок на панель быстрого доступа. Пользовательскую форму нужно создавать самому, но если вы хорошо разбираетесь в коде VBA, то сможете сделать этот инструмент максимально гибким и подходящим под ваши нужды.