Chcete-li usnadnit zadávání dat do tabulky v aplikaci Excel, můžete použít speciální formuláře, které pomohou urychlit proces plnění rozsahu tabulky s informacemi. V aplikaci Excel existuje vestavěný nástroj, který vám umožňuje vyplnit podobnou metodu. Uživatel také může vytvořit vlastní variantu formuláře, který bude maximálně přizpůsoben jeho potřebám, a za tímto účelem použije makro. Podívejme se na různá použití těchto užitečných nástrojů pro plnění v aplikaci Excel.
Obsah
Forma vyplňování je objekt s poli, jehož jména odpovídají názvům sloupců sloupců tabulky, která má být vyplněna. V těchto polích je třeba zadat data a okamžitě se do tabulkového pole přidá nový řádek. Formulář může fungovat jako samostatný vestavěný nástroj aplikace Excel a může být umístěn přímo na list jako rozsah, pokud je vytvořen uživatelem.
Nyní se podívejme, jak používat tyto dva druhy nástrojů.
Nejprve se dozvíme, jak používat integrovaný formulář pro zadání dat aplikace Excel.
V poli "Zvolit příkazy z" nastavte hodnotu "Příkazy, které nejsou na pásku" . Dále ze seznamu příkazů umístěných v abecedním pořadí nalezneme a vybereme pozici "Formulář ..." . Pak klikněte na tlačítko "Přidat" .
Kromě toho můžete pomocí makra a řady dalších nástrojů vytvořit vlastní vlastní formulář pro vyplnění tabulkového prostoru. Bude vytvořen přímo na listu a bude představovat jeho rozsah. S pomocí tohoto nástroje může sám uživatel realizovat takové možnosti, které považuje za nezbytné. Na funkční úrovni nebude prakticky nijak horší než vestavěný analog Excel a v některých případech to může překročit. Jedinou nevýhodou je, že pro každé pole tabulky musíte vytvořit samostatný formulář a nepoužívat stejnou šablonu, jak je to možné u standardní verze.
K dispozici je další možnost vypnout filtr. V takovém případě ani nepotřebujete přejít na jinou kartu a zůstat na kartě "Domov" . Po výběru buňky oblasti tabulky na pásu v bloku nastavení "Upravit" klikněte na ikonu "Seřadit a filtr" . V zobrazeném seznamu vyberte položku Filtr .
Druhý sloupec objektu pro zadávání dat je nyní prázdný. Ihned v něm budou zadány hodnoty pro vyplnění řádků hlavního rozsahu tabulky.
Do pole "Jméno" můžete název také nahradit pohodlnějším. Ale to není nutné. Je povoleno používat mezery, azbuky a jiné znaky. Na rozdíl od předchozího parametru, který určuje název listu programu, tento parametr přiřadí název panelu, který je pro uživatele viditelný na panelu zástupců.
Jak můžete vidět, název Sheet 1 se automaticky změní v oblasti "Projekt" , kterou jsme právě nastavili v nastavení.
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 není univerzální, to znamená, že je v nezměněné formě vhodný pouze pro náš případ. Chcete-li to přizpůsobit vašim potřebám, mělo by být odpovídajícím způsobem upraveno. Abyste to mohli udělat sami, pojďme analyzovat, z čeho se tento kód skládá, co by mělo být nahrazeno a co neměnit.
Takže první řádek:
Sub DataEntryForm()
"DataEntryForm" je název samotného makra. Můžete jej ponechat tak, jak je, nebo ji můžete nahradit jiným, což odpovídá obecným pravidlům pro vytváření názvů maker (bez mezery, pouze písmena latinské abecedy atd.). Změna jména neovlivní nic.
Kdekoli se v kódu zobrazí slovo "Producty", musíte jej v poli "(Name)" v oblasti "Properties" v editoru maker nahradit jménem, který jste předtím přiřadili. Samozřejmě, toto by mělo být provedeno pouze tehdy, pokud jste pojmenovali list jiným způsobem.
Nyní zvažte tento řádek:
nextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, 0).Row
Číslo "2" v tomto řádku znamená druhý sloupec listu. V tomto sloupci je sloupec nazvaný "Název produktu" . Na tom budeme zvažovat počet řádků. Proto pokud máte ve vašem případě podobný sloupec v účtu jiný pořadí, musíte zadat příslušné číslo. Hodnota "End (xlUp) .Offset (1, 0) .Row" v každém případě ponechte beze změny.
Dále zvažte řádku
If .Range("A2").Value = "" And .Range("B2").Value = "" Then
"A2" jsou souřadnice první buňky, ve které bude zobrazeno číslování řádků. "B2" je souřadnice první buňky, která bude použita k výstupu dat ( "Název zboží" ). Pokud se liší, zadejte data namísto těchto souřadnic.
Přejdeme k linii
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» ) означает наименование того диапазона, который мы ранее присвоили полям для ввода данных. Если вы дали им другое наименование, то в этой строке должно быть вставлено именно оно.
Дальнейшая часть кода универсальна и во всех случаях будет вноситься без изменений.
После того, как вы записали код макроса в окно редактора, следует нажать на значок сохранения в виде дискеты в левой части окна. Затем можно его закрывать, щелкнув по стандартной кнопке закрытия окон в правом верхнем углу.
В нашем случае, например, логично будет дать ей имя «Добавить» . Переименовываем и кликаем мышкой по любой свободной ячейке листа.
Čtěte také:
Как создать макрос в Excel
Как создать кнопку в Excel
В Экселе существует два способа применения формы заполнения данными: встроенная и пользовательская. Применение встроенного варианта требует минимум усилий от пользователя. Его всегда можно запустить, добавив соответствующий значок на панель быстрого доступа. Пользовательскую форму нужно создавать самому, но если вы хорошо разбираетесь в коде VBA, то сможете сделать этот инструмент максимально гибким и подходящим под ваши нужды.