Microsoft обучениe и професионални IT консултации за всеки бизнес

Ще ви представя един бърз и лесен начин за създаване на формa в Microsoft Excel и за събиране на информацията, която се въвежда в тази форма, с помощта на Visual Basic for Excel.

form-excel-vba

Примерна форма – отпуск на служителя

Главните елементи в потребителските електронни форми се наричат контроли.Най-основните контроли, които могат да се добавят към Excel VBA, са:

  • Label – примери на етикети в показаната форма са: „Име“, „Отдел“и др.
  • TextBox – полетата до етикетите „Име“, „Фамилия“ са текстови.
  • Comboboxes – нарича се още „Падащ списък” – контрола с определено съдържание, от което може да се избира една единствена стойност.
  • ChechBox – квадратчетата за избор. Служат за избор на няколко опции едновременно. Могат да се избират повече от едно. Изборът на месеци е с ChechBox.
  • RadioButton – бутони за избор. При тях се избира едно от много. В случай, че се избере едно, то другото се изключва. Изборът на превозно средство е зададен чрез RadioButton
  • Button – Командни бутони. Три командни бутони в долната част на формата, са примери за командни бутони.

Създаване на потребителска форма

  1. Отворете Visual Basic.
  2. Изберете десен бутон върху файла, в който искате да добавите потребителска форма.
  3. От Insert ->UserForm. Екрана би трябвало да изглежда така:

excel-form-vba

Ако не се вижда лентата с инструменти Toolbox, то се избира View ->Toolbox.
4. Добавят се различните контроли върху формата
5. Задават се съответните имена на всички контроли, както и текста, който да се показва. Това се прави в Properties на всяка от контролите, където полето Name служи за задаване на служебно име, а полето Caption за име, което ще се изобразява на екрана.

table-excel-vba

Съвет: Добра практика е да се преименуват имената на контролите. Това прави кода по-четим.

Отваряне на форма

За да се отвори формата за попълване може да се използва следния код, който да се присвои към бутон от работния лист:

Private Sub CommandButton1_Click()
UserForm1.Show
End Sub

UserForm_Initialize – инициализиране на форма.

Това е най-важната част (инициализиране), за да работи формата.
За да инициализираме форматa:

1. Променя се изгледа на View Code:

vba-excel

2. Изписва се следния код, в който важната част е изписана в заглавието: Initialize. Останалата част от кода описва опциите в падащия списък:

Private Sub UserForm_Initialize()
With ComboBoxDepartment
.AddItem "IT"
.AddItem "Security"
.AddItem "Finance"
End With
End Sub

Събиране на въведената информация

Това става с избирането на бутон OK. Този бутон трябва да съдържа следния код:

Private Sub OKButton_Click()
Dim emptyRow As Integer
‘определяне на последен ред
Sheets(1).Select
Range("A1").Select
Selection.CurrentRegion.Select
emptyRow = Selection.Rows.Count + 1
‘въвеждане на име
Cells (emptyRow, 1).Value = txtName.Value
‘въвеждане на Фамилия
Cells (emptyRow, 2).Value = txtLastName.Value
‘въвеждане на отдел
Cells (emptyRow, 3).Value = ComboBoxDepartment.Value
‘въвеждане на стойности от CheckBox
If CheckBox1.Value = True Then Cells (emptyRow, 4).Value = CheckBox1.Caption
If CheckBox2.Value = True Then Cells (emptyRow, 4).Value = Cells (emptyRow, 4).Value & " " & CheckBox2.Caption
If CheckBox3.Value = True Then Cells (emptyRow, 4).Value = Cells (emptyRow, 4).Value & " " & CheckBox3.Caption
‘въвеждане на стойности от Радио бутон
If OptionButton1.Value = True Then
Cells (emptyRow, 5).Value = "Лек автомобил"
Else
Cells (emptyRow, 5).Value = "Автобус"
End If
End Sub

Затваряне на форма

Следния код затваря прозореца на формата:

Private Sub CancelButton_Click()
Unload Me
End Sub

Изчистване на форма

Следния код изчиства формата:

Private Sub ClearButton_Click()
'Изчистване на txtName
txtName.Value = ""
' Изчистване на txtLastName
txtLastName.Value = ""
‘Изчистване на ComboBoxDepartment
ComboBoxDepartment.Value = ""
‘Изчистване на CheckBoxes
CheckBox1.Value = False
CheckBox2.Value = False
CheckBox3.Value = False
' Изчистване на OptionButton
OptionButton1.Value = False
OptionButton2.Value = False
End Sub

ITraining
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.