Používanie formulárov vo VBA vám poskytuje prázdne plátno na navrhovanie a usporiadanie formulárov podľa vašich potrieb kedykoľvek. Naučme sa s Download.vn vytvárať formuláre na automatické zadávanie údajov v Excel VBA !
Vytvorte používateľský formulár pomocou Excel VBA
Otvorte nový excelový zošit a pred začatím vytvárania formulára na zadávanie údajov vykonajte niekoľko predbežných krokov.
Uložte zošit s požadovaným názvom, nezabudnite zmeniť typ súboru na Excel Macro-Enabled Workbook.
Pridajte do tohto zošita 2 hárky s nasledujúcimi názvami:
- Hárok 1 : Domov
- Hárok 2 : Databáza študentov
Ich mená si samozrejme môžete ľubovoľne meniť.
Na hárku Domov pridajte tlačidlo na ovládanie makra formulára používateľa. Prejdite na kartu Vývojár > kliknite na tlačidlo v rozbaľovacom zozname Vložiť . Umiestnite toto tlačidlo kdekoľvek v tabuľke.
Po umiestnení tlačidla ho premenujte. Kliknite naň pravým tlačidlom myši > kliknite na Nový , aby ste pripojili makro, ktoré zobrazí formulár.
Do okna editora zadajte nasledujúci kód:
Sub Button1_Click()
UserForm.Show
End Sub
S pripraveným hárkom Domov a databázou študentov je čas navrhnúť používateľský formulár. Prejdite na kartu Vývojár > kliknutím na položku Visual Basic otvorte Editor . Prípadne môžete stlačením ALT+F11 otvoriť okno editora.
Kliknite na kartu Vložiť a vyberte položku UserForm . Používateľský formulár je pripravený na použitie. S týmto formulárom sa otvorí sprievodný panel nástrojov, ktorý obsahuje všetky nástroje potrebné na návrh rozloženia.
Z tohto panela nástrojov vyberte Rám . Presuňte ho do používateľského formulára a zmeňte jeho veľkosť.
V (name) môžete zmeniť názov tohto rámca. Ak chcete zobraziť názov v klientskom rozhraní, môžete zmeniť názov v stĺpci Titulok .
Ďalej vyberte zo sady nástrojov Label a vložte 2 nálepky do tohto poľa. Premenujte prvé meno na Application Number a druhé meno na Student ID .
Použiť rovnaký proces premenovania cez Caption v Properties . Pred premenovaním sa uistite, že ste vybrali zodpovedajúci štítok.
Potom do poľa s nálepkami vložte 2 textové polia. Budú sa používať na zachytávanie vstupov používateľov. Zmeňte názvy 2 textových polí pomocou stĺpca (Názov) vo vlastnostiach takto:
- Textbox1 : txtApplicationNo
- Textové pole 2 : txtStudentID
Navrhovanie informačného rámca pre študentov
Vložte zvislý rám a pridajte 10 štítkov a 10 textových polí. Premenujte štítok takto:
- Label3 : Názov
- Štítok 4 : Vek
- Štítok5 : Adresa
- Label6 : Telefón
- Štítok7 : Mesto
- Štítok8 : Krajina
- Štítok9 : Dátum narodenia
- Label10 : PSČ
- Štítok 11 : Štátna príslušnosť
- Štítok 12 : Pohlavie
Vedľa týchto menoviek vložte zodpovedajúce textové pole vložením z dvoch polí s tlačidlami z panela nástrojov používateľského formulára vedľa menovky pohlavia. Zmeňte ich mená na Muž a Žena (s Vlastným).
Navrhnite podrobný rámec kurzu
Pridajte ďalší rám vertikálne a vložte 6 nálepiek, 6 textových polí zodpovedajúcich každému štítku. Premenujte nálepku takto:
- Label13 : Názov kurzu
- Label14 : ID kurzu
- Label15 : Dátum začiatku registrácie
- Label16 : Dátum ukončenia registrácie
- Label17 : Trvanie kurzu
- Štítok18 : Oddelenie
Navrhnite rám s podrobnosťami o platbe
Vložte nový rám, pridajte nový štítok a premenujte ho "Chcete aktualizovať Platobné údaje?" Vložte 2 tlačidlá možností ; premenujte ich na Áno a Nie .
Podobne pridajte nový rámik obsahujúci 2 ďalšie štítky a 2 kombinované polia. Premenujte štítok takto:
- Label19 : Platba prijatá
- Label20 : Spôsob platby
Dizajn navigačnej dosky
V poslednom rámci pridajte 3 tlačidlá zo sady nástrojov, ktoré obsahujú kód na nasadenie formulárov. Premenujte tlačidlá nasledovne:
- Tlačidlo 1 : Uložiť podrobnosti
- Tlačidlo 2 : Vymazať formulár
- Tlačidlo 3 : Ukončiť
Napísať kód automatického formulára: Tlačidlo na uloženie informácií
Dvakrát kliknite na tlačidlo Uložiť podrobnosti . V ďalšom module vložte nasledujúci kód:
Private Sub CommandButton2_Click()
‘declare the variables used throughout the codes
Dim sht As Worksheet, sht1 As Worksheet, lastrow As Long
'Add validations to check if character values are being entered in numeric fields.
If VBA.IsNumeric(txtApplicationNo.Value) = False Then
MsgBox "Only numeric values are accepted in the Application Number", vbCritical
Exit Sub
End If
If VBA.IsNumeric(txtStudentID.Value) = False Then
MsgBox "Only numeric values are accepted in the Student ID", vbCritical
Exit Sub
End If
If VBA.IsNumeric(txtAge.Value) = False Then
MsgBox "Only numeric values are accepted in Age", vbCritical
Exit Sub
End If
If VBA.IsNumeric(txtPhone.Value) = False Then
MsgBox "Only numeric values are accepted in Phone Number", vbCritical
Exit Sub
End If
If VBA.IsNumeric(Me.txtCourseID.Value) = False Then
MsgBox "Only numeric values are accepted in Course ID", vbCritical
Exit Sub
End If
'link the text box fields with the underlying sheets to create a rolling database
Set sht = ThisWorkbook.Sheets("Student Database")
'calculate last populated row in both sheets
lastrow = sht.Range("a" & Rows.Count).End(xlUp).Row + 1
'paste the values of each textbox into their respective sheet cells
With sht
.Range("a" & lastrow).Value = txtApplicationNo.Value
.Range("b" & lastrow).Value = txtStudentID.Value
.Range("c" & lastrow).Value = txtName.Value
.Range("d" & lastrow).Value = txtAge.Value
.Range("e" & lastrow).Value = txtDOB.Value
.Range("g" & lastrow).Value = txtAddress.Value
.Range("h" & lastrow).Value = txtPhone.Value
.Range("i" & lastrow).Value = txtCity.Value
.Range("j" & lastrow).Value = txtCountry.Value
.Range("k" & lastrow).Value = txtZip.Value
.Range("l" & lastrow).Value = txtNationality.Value
.Range("m" & lastrow).Value = txtCourse.Value
.Range("n" & lastrow).Value = txtCourseID.Value
.Range("o" & lastrow).Value = txtenrollmentstart.Value
.Range("p" & lastrow).Value = txtenrollmentend.Value
.Range("q" & lastrow).Value = txtcourseduration.Value
.Range("r" & lastrow).Value = txtDept.Value
End With
sht.Activate
'determine gender as per user's input
If optMale.Value = True Then sht.Range("g" & lastrow).Value = "Male"
If optFemale.Value = True Then sht.Range("g" & lastrow).Value = "Female"
'Display a message box, in case the user selects the Yes radio button
If optYes.Value = True Then
MsgBox "Please select the payment details below"
Else:
Exit Sub
End If
End Sub
Vysvetlenie kódu v automatizovanej forme:
Textové polia obsahujú textové a číselné hodnoty, takže musíte obmedziť vstup používateľa. Číslo prihlášky, ID študenta, Vek, Telefón, ID kurzu a Trvanie kurzu budú obsahovať iba čísla, zvyšok bude obsahovať text.
Pomocou príkazu IF kód spustí vyskakovacie okno s chybou, ak používateľ zadá hodnotu znaku alebo textu do ľubovoľného číselného poľa.
Pretože existuje overenie chýb, musíte textové polia prepojiť s bunkami v hárku.
Premenné lastrow vypočítajú posledný vyplnený riadok a uložia hodnotu vo vnútri pre flexibilné použitie.
Nakoniec sa tieto hodnoty prilepia do textového poľa v prepojenom hárku programu Excel.
Kód formulára vymazať a ukončiť tlačidlo
V tlačidle vymazať musíte napísať kód, ktorý vymaže aktuálne hodnoty z formulára používateľa takto:
With Me
.txtApplicationNo.Value = ""
.txtStudentID.Value = ""
..txtName.Value = ""
.txtAge.Value = ""
.txtAddress.Value = ""
.txtPhone.Value = ""
.txtCity.Value = ""
.txtCountry.Value = ""
.txtDOB.Value = ""
.txtZip.Value = ""
.txtNationality.Value = ""
.txtCourse.Value = ""
.txtCourseID.Value = ""
.txtenrollmentstart.Value = ""
.txtenrollmentend.Value = ""
.txtcourseduration.Value = ""
.txtDept.Value = ""
.cmbPaymentMode.Value = ""
.cmbPayment.Value = ""
.optFemale.Value = False
.optMale.Value = False
.optYes.Value = False
.optNo.Value = False
End With
Do tlačidla ukončenia zadajte nasledujúci kód do formulára používateľa:
Private Sub CommandButton5_Click()
Unload Me
End Sub
V poslednom kroku musíte zadať niekoľko posledných kúskov kódu, aby ste vytvorili rozbaľovacie hodnoty pre pole so zoznamom (v rámčeku pokladne).
Private Sub UserForm_Activate()
With cmbPayment
.Clear
.AddItem ""
.AddItem "Yes"
.AddItem "No"
End With
With cmbPaymentMode
.Clear
.AddItem ""
.AddItem "Cash"
.AddItem "Card"
.AddItem "Check"
End With
End Sub
Vyššie je uvedené, ako vytvoriť formulár na automatické zadávanie údajov v programe Excel VBA . Dúfam, že článok je pre vás užitočný.