Ak chcete uľahčiť zadávanie údajov do tabuľky v programe Excel, môžete použiť špeciálne formuláre, ktoré pomôžu urýchliť proces plnenia rozsahu tabuľky s informáciami. V programe Excel je vstavaný nástroj, ktorý vám umožňuje vyplniť podobnú metódu. Používateľ si tiež môže vytvoriť vlastnú variantu formulára, ktorý bude maximálne prispôsobený jeho potrebám, pričom na tento účel použije makro. Poďme sa pozrieť na rôzne použitia týchto užitočných plniacich nástrojov v Exceli.
obsah
Forma vyplňovania je objekt s poľami, ktorých mená zodpovedajú menám stĺpcov stĺpcov tabuľky, ktorá sa má vyplniť. V týchto poliach je potrebné zadať údaje a okamžite sa do tabuľky pridá nový riadok. Formulár môže slúžiť ako samostatný vstavaný nástroj programu Excel a môže byť umiestnený priamo na list ako jeho rozsah, ak je vytvorený používateľom.
Teraz sa pozrime na to, ako používať tieto dva druhy nástrojov.
Po prvé, zistíme, ako použiť vstavaný formulár na zadanie údajov programu Excel.
V poli "Vybrať príkazy z" nastavte hodnotu "Príkazy, ktoré nie sú na páske" . Ďalej zo zoznamu príkazov, nachádzajúcich sa v abecednom poradí, nájdeme a vyberieme pozíciu "Formulár ..." . Potom kliknite na tlačidlo "Pridať" .
Okrem toho pomocou makra a množstva ďalších nástrojov môžete vytvoriť svoj vlastný formulár na vyplnenie tabuľkového priestoru. Vytvorí sa priamo na hárku a predstavuje jeho rozsah. Pomocou tohto nástroja môže sám užívateľ realizovať tie možnosti, ktoré považuje za potrebné. Na funkčnej úrovni to prakticky nebude nižšia ako vstavaný analóg Excel a v niektorých prípadoch to môže prekročiť. Jedinou nevýhodou je, že pre každé pole tabuľky musíte vytvoriť samostatný formulár a nepoužívať rovnakú šablónu, ako je to možné so štandardnou verziou.
Ďalšia možnosť je vypnúť filter. V takom prípade nemusíte ani ísť na inú kartu, ktorá zostane na karte Domov . Po výbere bunky oblasti tabuľky na pásiku v bloku nastavení "Upraviť" kliknite na ikonu "Zoradiť a filtrovať" . V zobrazenom zozname vyberte položku "Filtrovať" .
Druhý stĺpec objektu na zadávanie údajov je teraz prázdny. Ihneď v ňom budú zadané hodnoty na vyplnenie riadkov hlavného rozsahu tabuľky.
V poli "Name" môžete názov nahradiť aj pohodlnejším. Ale to nie je potrebné. Je povolené používať medzery, cyrilické a iné znaky. Na rozdiel od predchádzajúceho parametra, ktorý špecifikuje názov hárka programu, tento parameter priradí názov listu viditeľného pre používateľa na paneli odkazov.
Ako vidíte, názov listu 1 sa automaticky zmení v oblasti "Projekt" , ktorú sme práve nastavili v nastaveniach.
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
Tento kód však nie je univerzálny, to znamená, že je v nezmenenej podobe vhodnej len pre náš prípad. Ak ju chcete prispôsobiť vašim potrebám, mali by ste ju zodpovedajúcim spôsobom upraviť. Aby ste to mohli urobiť sami, poďme analyzovať, z čoho pozostáva tento kód, čo by malo byť nahradené a čo sa nemení.
Takže prvý riadok:
Sub DataEntryForm()
"DataEntryForm" je názov samotného makra. Môžete to nechať tak, ako je, alebo ho môžete nahradiť iným, čo zodpovedá všeobecným pravidlám pre vytváranie názvov makier (bez medzery, použite iba písmená latinskej abecedy atď.). Zmena názvu neovplyvní nič.
Kdekoľvek sa v kóde objaví slovo "Producty", musíte ho nahradiť názvom, ktorý ste predtým priradili pre svoj hárok, do poľa "(Name)" v oblasti "Properties" v editore makier. Prirodzene, toto by sa malo robiť len vtedy, ak ste list povolali inak.
Teraz zvážte tento riadok:
nextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, 0).Row
Číslica "2" v tomto riadku znamená druhý stĺpec listu. V tomto stĺpci sa nachádza stĺpec s názvom "Názov produktu" . Na ňom zvážime počet riadkov. Preto, ak máte vo vašom prípade podobný stĺpec v inom poradí inak, musíte zadať príslušné číslo. Hodnota "End (xlUp) .Offset (1, 0) .Row" v každom prípade ponechajte nezmenené.
Ďalej zvážte riadok
If .Range("A2").Value = "" And .Range("B2").Value = "" Then
"A2" sú súradnice prvej bunky, v ktorej sa zobrazí číslovanie riadkov. "B2" sú súradnice prvej bunky, ktorá sa použije na výstup údajov ( "Názov tovaru" ). Ak sa líšia, zadajte svoje údaje namiesto týchto súradníc.
Prejdeme na trať
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» ) означает наименование того диапазона, который мы ранее присвоили полям для ввода данных. Если вы дали им другое наименование, то в этой строке должно быть вставлено именно оно.
Дальнейшая часть кода универсальна и во всех случаях будет вноситься без изменений.
После того, как вы записали код макроса в окно редактора, следует нажать на значок сохранения в виде дискеты в левой части окна. Затем можно его закрывать, щелкнув по стандартной кнопке закрытия окон в правом верхнем углу.
В нашем случае, например, логично будет дать ей имя «Добавить» . Переименовываем и кликаем мышкой по любой свободной ячейке листа.
Prečítajte si tiež:
Как создать макрос в Excel
Как создать кнопку в Excel
В Экселе существует два способа применения формы заполнения данными: встроенная и пользовательская. Применение встроенного варианта требует минимум усилий от пользователя. Его всегда можно запустить, добавив соответствующий значок на панель быстрого доступа. Пользовательскую форму нужно создавать самому, но если вы хорошо разбираетесь в коде VBA, то сможете сделать этот инструмент максимально гибким и подходящим под ваши нужды.