Aby ułatwić wprowadzanie danych do tabeli w Excelu, możesz użyć specjalnych formularzy, które pomogą przyspieszyć proces wypełniania zakresu tabel informacjami. W Excelu znajduje się wbudowane narzędzie, które pozwala wypełnić podobną metodę. Ponadto użytkownik może stworzyć własny wariant formularza, który będzie maksymalnie dostosowany do jego potrzeb, stosując do tego makro. Spójrzmy na różne zastosowania tych przydatnych narzędzi do wypełniania w programie Excel.
Spis treści
Formą wypełnienia jest obiekt z polami, których nazwy odpowiadają nazwom kolumn kolumny tabeli, która ma być wypełniona. W tych polach należy wprowadzić dane i zostaną one natychmiast dodane do zakresu tabeli przez nową linię. Formularz może działać jako oddzielne wbudowane narzędzie Excel i może być umieszczony bezpośrednio na arkuszu jako jego zakres, jeśli jest tworzony przez użytkownika.
Teraz przyjrzyjmy się, jak korzystać z tych dwóch rodzajów narzędzi.
Przede wszystkim dowiedzmy się, jak używać wbudowanego formularza do wprowadzania danych Excel.
W polu "Wybierz polecenia z" ustaw wartość "Polecenia nie na taśmie" . Dalej z listy poleceń, rozmieszczonych w kolejności alfabetycznej, znajdujemy i wybieramy pozycję "Formularz ..." . Następnie kliknij przycisk "Dodaj" .
Ponadto przy użyciu makra i wielu innych narzędzi możliwe jest utworzenie własnego niestandardowego formularza w celu wypełnienia obszaru tabel. Zostanie on utworzony bezpośrednio na arkuszu i będzie reprezentował jego zakres. Za pomocą tego narzędzia użytkownik sam będzie mógł zrealizować te możliwości, które uzna za konieczne. Na poziomie funkcjonalnym praktycznie nie będzie gorszy od wbudowanego analogu Excela, aw niektórych przypadkach może go przekraczać. Jedyną wadą jest to, że dla każdej tablicy tablicowej należy utworzyć oddzielny formularz i nie używać tego samego szablonu, co jest możliwe w wersji standardowej.
Jest jeszcze jedna opcja, aby wyłączyć filtr. W takim przypadku nie musisz nawet iść do innej karty, pozostając na karcie "Strona główna" . Po wybraniu komórki obszaru tabeli na wstążce w bloku ustawień "Edytuj", kliknij ikonę "Sortuj i filtruj" . Na wyświetlonej liście wybierz element "Filtr" .
Druga kolumna obiektu wprowadzania danych pozostaje na razie pusta. Natychmiast w nim zostaną wprowadzone wartości, aby wypełnić linie w głównym zakresie tabel.
W polu "Nazwa" możesz również zastąpić nazwę bardziej wygodną. Ale to nie jest konieczne. Dozwolone jest używanie spacji, cyrylicy i innych znaków. W przeciwieństwie do poprzedniego parametru, który określa nazwę arkusza programu, ten parametr przypisuje nazwę arkusza widocznego dla użytkownika na pasku skrótów.
Jak widać, nazwa Arkusza 1 zmieni się automatycznie w obszarze "Projekt" , który właśnie ustawiliśmy w ustawieniach.
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
Ale ten kod nie jest uniwersalny, to znaczy, że jest w niezmienionej formie odpowiedniej tylko dla naszego przypadku. Jeśli chcesz dostosować go do swoich potrzeb, należy go odpowiednio zmodyfikować. Abyś mógł zrobić to sam, przeanalizujmy, na czym polega ten kod, co należy zastąpić i czego nie można zmienić.
Pierwsza linia:
Sub DataEntryForm()
"DataEntryForm" to nazwa samego makra. Możesz go pozostawić bez zmian lub zastąpić go innym, który odpowiada ogólnym regułom tworzenia nazw makr (bez spacji, tylko litery alfabetu łacińskiego itp.). Zmiana nazwy nie wpłynie na nic.
Wszędzie tam, gdzie w kodzie pojawia się słowo "Producty", należy zastąpić je nazwą przypisaną wcześniej do arkusza w polu "(Nazwa)" w obszarze "Właściwości" edytora makr. Oczywiście należy to zrobić tylko wtedy, gdy nazwałeś arkusz arkuszem w inny sposób.
Teraz rozważ tę linię:
nextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, 0).Row
Liczba "2" w tym wierszu oznacza drugą kolumnę arkusza. W tej kolumnie znajduje się kolumna o nazwie "Nazwa produktu" . Na nim rozważymy liczbę rzędów. Dlatego jeśli w twoim przypadku podobna kolumna ma inną kolejność na koncie, musisz wpisać odpowiedni numer. Wartość "End (xlUp) .Offset (1, 0) .Row" w każdym przypadku pozostawia niezmieniona.
Następnie rozważ wiersz
If .Range("A2").Value = "" And .Range("B2").Value = "" Then
"A2" to współrzędne pierwszej komórki, w której zostanie wyświetlona numeracja linii. "B2" to współrzędne pierwszej komórki, która będzie używana do wyprowadzania danych ( "Nazwa towarów" ). Jeśli są różne, wprowadź dane zamiast tych współrzędnych.
Przechodzimy do 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» ) означает наименование того диапазона, который мы ранее присвоили полям для ввода данных. Если вы дали им другое наименование, то в этой строке должно быть вставлено именно оно.
Дальнейшая часть кода универсальна и во всех случаях будет вноситься без изменений.
После того, как вы записали код макроса в окно редактора, следует нажать на значок сохранения в виде дискеты в левой части окна. Затем можно его закрывать, щелкнув по стандартной кнопке закрытия окон в правом верхнем углу.
В нашем случае, например, логично будет дать ей имя «Добавить» . Переименовываем и кликаем мышкой по любой свободной ячейке листа.
Czytaj także:
Как создать макрос в Excel
Как создать кнопку в Excel
В Экселе существует два способа применения формы заполнения данными: встроенная и пользовательская. Применение встроенного варианта требует минимум усилий от пользователя. Его всегда можно запустить, добавив соответствующий значок на панель быстрого доступа. Пользовательскую форму нужно создавать самому, но если вы хорошо разбираетесь в коде VBA, то сможете сделать этот инструмент максимально гибким и подходящим под ваши нужды.