Да бисте олакшали унос података у табелу у Екцелу, можете користити посебне форме који ће помоћи убрзавању процеса попуњавања распона таблица с информацијама. У Екцел-у постоји уграђена алатка која вам омогућава да попуните сличан метод. Такође, корисник може креирати сопствену варијанту форме, која ће бити максимално прилагођена његовим потребама, примјеном макроа за ово. Погледајмо различите употребе ових корисних алатки за пуњење у Екцелу.
Садржај
Облик попуњавања је објекат с пољима, имена која одговарају називима ступаца колоне таблице које се попуњавају. У овим пољима морате унети податке и они ће одмах бити додани у распон таблица новом линијом. Облик може дјеловати као засебан уграђени Екцел алат и може се поставити директно на листу као свој асортиман, ако га креира корисник.
Сада погледајте како да користите ове две врсте алата.
Пре свега, сазнајте како користити уграђену форму за унос Екцел података.
У пољу "Изабери команде од" поставите вредност "Команде нису на траци" . Даље са листе команди, лоцираних по абецедном редоследу, пронађемо и изаберите позицију "Форм ..." . Затим кликните на дугме "Додај" .
Поред тога, користећи макро и низ других алата, могуће је направити сопствени образац за попуњавање простора таблице. Биће створен директно на листу и представља његов опсег. Уз помоћ овог алата, корисник сам ће моћи да реализује оне могућности које сматра неопходним. На функционалном нивоу, практично неће бити инфериорни у односу на уграђени аналогни Екцел, ау неким случајевима то може бити и већи. Једини недостатак је што за сваки таблични низ морате креирати посебан образац, а не користити исти шаблон, што је могуће са стандардном верзијом.
Постоји још једна могућност да искључите филтер. У том случају, чак и не морате да идете на другу картицу, преостали на картици "Почетна" . Након што изаберете ћелију подручја таблице на траци у оквиру "Измени", кликните на икону "Сортирај и филтрирај" . На листи која се појави, изаберите ставку "Филтер" .
Друга колона објекта за унос података остаје празна за сада. Одмах ће се унети вриједности за попуњавање линија распона главне таблице.
У пољу "Име" такође можете заменити име са погоднијим. Али ово није неопходно. Дозвољено је користити просторе, ћирилицу и било који други знак. За разлику од претходног параметра који одређује име листа за програм, овај параметар додељује име листе видљивом кориснику на пречици.
Као што можете видети, након тога, име листа 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()
"ДатаЕнтриФорм" је назив самог макроа. Можете га оставити као што је, или га можете замијенити било којим другим, што одговара општим правилима за креирање макро имена (без размака, само слова латинске абецеде, итд.). Промена имена неће утицати на било шта.
Где год се у коду појављује ријеч "Продуцти", морате га замијенити називом који сте претходно доделили за свој лист у пољу "(Име)" подручја "Својства" макро уређивача. Наравно, ово треба урадити само ако сте именовали листу на други начин.
Сада размислите о овој линији:
nextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, 0).Row
Фигура "2" у овој линији значи другу колону листа. У овој колони налази се колона названа "Име производа" . На њему ћемо размотрити број редова. Стога, ако у вашем случају сличан ступац има другачији ред у рачуну, онда морате унети одговарајући број. Вредност "Крај (клУп) .Оффсет (1, 0) .Ров" у сваком случају оставите непромењену.
Затим размислите о реду
If .Range("A2").Value = "" And .Range("B2").Value = "" Then
"А2" су координате прве ћелије, у којима ће се приказати бројање линије. "Б2" је координата прве ћелије, која ће се користити за излазак података ( "Назив робе" ). Ако су другачији, онда унесите своје податке умјесто ових координата.
Пролазимо на линију
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, то сможете сделать этот инструмент максимально гибким и подходящим под ваши нужды.