لتسهيل إدخال البيانات في جدول في 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" في التعليمة البرمجية ، يجب استبدالها بالاسم الذي عينته سابقًا للورقة الخاصة بك في الحقل "(Name)" في منطقة "Properties" في برنامج تحرير الماكرو. بطبيعة الحال ، يجب القيام بذلك فقط إذا قمت بتسمية الورقة بطريقة مختلفة.
الآن النظر في هذا الخط:
nextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, 0).Row
الرقم "2" في هذا السطر يعني العمود الثاني من الورقة. يوجد في هذا العمود عمود يسمى "Product Name" . على ذلك سننظر في عدد الصفوف. لذلك ، إذا كان عمود مشابه في حالتك يحتوي على ترتيب مختلف في الحساب ، فأنت بحاجة إلى إدخال الرقم المناسب. قيمة "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, то сможете сделать этот инструмент максимально гибким и подходящим под ваши нужды.