Visual Basic je vynikajúci jazyk na automatizáciu opakujúcich sa úloh v Exceli. Predstavte si, že svoju automatizáciu posuniete o stupeň vyššie tým, že vytvoríte vysoko funkčné používateľské formuláre, ktoré budú pre koncových používateľov vyzerať prehľadne.

Používateľské formuláre vo VBA vám predstavujú prázdne plátno; môžete navrhnúť a usporiadať formuláre tak, aby vyhovovali vašim potrebám v danom čase.

V tejto príručke sa naučíte vytvoriť formulár na zadávanie údajov pre študentov, ktorý zachytáva relevantné informácie v prepojených hárkoch programu Excel.

Vytvorenie používateľského formulára pomocou Excel VBA

Otvorte nový excelový zošit a vykonajte niekoľko predbežných krokov skôr, ako začnete vytvárať formulár na zadávanie údajov.

Uložte zošit s požadovaným názvom; nezabudnite zmeniť typ súboru na an Zošit Excel s podporou makier.

Súvisiace:Webové stránky a blogy, kde sa dozviete tipy a triky programu Excel

Pridajte do tohto zošita dva hárky s nasledujúcimi názvami:

  1. Hárok 1: Domov
  2. Hárok 2:Databáza študentov
instagram viewer

Neváhajte zmeniť tieto názvy podľa svojich požiadaviek.

V Domov list, pridajte tlačidlo na ovládanie makra používateľského formulára. Choďte na Vývojár a kliknite na Tlačidlo možnosť z Vložiť rozbaľovací zoznam. Umiestnite tlačidlo kdekoľvek na hárku.

Po umiestnení tlačidla ho premenujte. Kliknite naň pravým tlačidlom myši a kliknite na Nový na priradenie nového makra na zobrazenie formulára.

Do okna editora zadajte nasledujúci kód:

Sub Button1_Click()
UserForm. Šou
End Sub

Raz Domov a Databáza študentov hárky sú pripravené, je čas navrhnúť používateľský formulár. Prejdite na Vývojár a kliknite na Visual Basic otvorte Editor. Prípadne môžete stlačiť ALT + F11 na otvorenie okna editora.

Klikni na Vložiť kartu a vyberte UserForm.

Prázdny užívateľský formulár je pripravený na použitie; otvorí sa sprievodný panel nástrojov spolu s formulárom, ktorý obsahuje všetky základné nástroje na návrh rozloženia.

Z panela nástrojov vyberte Rám možnosť. Presuňte ho do používateľského formulára a zmeňte jeho veľkosť.

V (názov) môžete zmeniť názov rámu. Ak chcete zobraziť názov na front-ende, môžete zmeniť názov v Popis stĺpec.

Ďalej vyberte Označenie zo sady nástrojov a vložte dva štítky do tohto rámu. Premenujte prvý ako Číslo aplikácie a druhý ako Študentská karta.

Platí rovnaká logika premenovania; zmeniť mená cez Popis možnosť v rámci Vlastnosti okno. Pred zmenou názvu sa uistite, že ste vybrali príslušný štítok.

Ďalej vložte dve textové polia vedľa polí s menovkami. Tieto sa použijú na zachytenie vstupov používateľa. Zmeňte názvy dvoch textových polí pomocou (Názov) stĺpec v rámci Vlastnosti okno. Názvy sú nasledovné:

  • Textové pole 1: txtČ
  • Textové pole 2: txtStudentID

Navrhovanie rámca podrobností o študentovi

Vložte zvislý rám a pridajte 10 štítkov a 10 textových polí. Premenujte každý z nich nasledujúcim spôsobom:

  • Štítok 3: názov
  • Štítok 4: Vek
  • Štítok 5: Adresa
  • Štítok 6: Telefón
  • Štítok 7: Mesto
  • Štítok 8: Krajina
  • Štítok 9: Dátum narodenia
  • Štítok 10: PSČ
  • Štítok 11: národnosť
  • Štítok 12: rod

Vložte zodpovedajúce textové polia vedľa týchto štítkov; vložte dva (alebo viac) tlačidlo voľby polí z panela nástrojov používateľského formulára vedľa rod štítok. Premenujte ich Muž a Žena (spolu s Custom), resp.

Navrhovanie rámca podrobností o kurze

Pridajte ďalší zvislý rám a vložte šesť štítkov a šesť textových polí zodpovedajúcich každému štítku. Premenujte štítky takto:

  • Štítok 13: Názov kurzu
  • Štítok 14: ID kurzu
  • Štítok 15: Dátum začiatku registrácie
  • Štítok 16: Dátum ukončenia registrácie
  • Štítok 17: Trvanie kurzu
  • Štítok 18: oddelenie

Súvisiace: 4 chybám, ktorým sa treba vyhnúť pri programovaní makier v Exceli s VBA

Návrh rámca platobných údajov

Vložte nový rám; pridať nový štítok a premenovať ho "Chcete aktualizovať podrobnosti o platbe?" Vložte dva tlačidlá možností; premenovať ich Áno a nie.

Podobne pridajte nový rámček obsahujúci dva ďalšie štítky a dve kombinované polia. Premenujte štítky takto:

  • Štítok 19: Platba prijatá
  • Štítok 20: Spôsob platby

Navrhovanie navigačnej tably

V konečnom rámci pridajte tri tlačidlá zo sady nástrojov, ktoré budú obsahovať kód na vykonávanie formulárov.

Premenujte tlačidlá nasledujúcim spôsobom:

  • Tlačidlo 1: Uložiť podrobnosti
  • Tlačidlo 2: Jasná forma
  • Tlačidlo 3: Východ

Písanie kódu automatického formulára: tlačidlo Uložiť podrobnosti

Dvakrát kliknite na Uložiť podrobnosti tlačidlo. Do nasledujúceho modulu vložte nasledujúci kód:

Private Sub CommandButton2_Click()

„deklarujte premenné používané v kódoch
Dim sht As Worksheet, sht1 As Worksheet, lastrow As Long

'Pridajte overenia, aby ste skontrolovali, či sa hodnoty znakov zadávajú do číselných polí.
Ak VBA.IsNumeric (txtApplicationNo. Value) = False Potom
MsgBox "V čísle žiadosti sú akceptované iba číselné hodnoty", vbCritical
Ukončiť Sub
Koniec Ak

Ak VBA.IsNumeric (txtStudentID.Value) = False Potom
MsgBox "V ID študenta sú akceptované iba číselné hodnoty", vbCritical
Ukončiť Sub
Koniec Ak

Ak VBA.IsNumeric (txtAge. Hodnota) = False Potom
MsgBox "Vek sú akceptované iba číselné hodnoty", vbCritical
Ukončiť Sub
Koniec Ak

Ak VBA.IsNumeric (txtPhone. Hodnota) = False Potom
MsgBox "V telefónnom čísle sú akceptované iba číselné hodnoty", vbCritical
Ukončiť Sub
Koniec Ak

Ak VBA.IsNumeric (Me.txtCourseID.Value) = False Potom
MsgBox "V ID kurzu sú akceptované iba číselné hodnoty", vbCritical
Ukončiť Sub
Koniec Ak

'prepojte polia textového poľa s podkladovými hárkami, aby ste vytvorili pohyblivú databázu
Nastaviť sht = ThisWorkbook. Tabuľky ("Databáza študentov")

'vypočítajte posledný vyplnený riadok v oboch hárkoch

posledný rad = sht. Rozsah("a" & Riadky. Počet).Koniec (xlUp).Riadok + 1

'prilepte hodnoty každého textového poľa do príslušných buniek listu

S sht
.Rozsah("a" & posledný riadok).Hodnota = txtČ. Hodnota
.Range("b" & lastrow).Value = txtStudentID.Value
.Range("c" & lastrow).Hodnota = txtName. Hodnota
.Rozsah("d" & posledný riadok).Hodnota = txtVek. Hodnota
.Range("e" & lastrow).Hodnota = txtDOB.Value
.Rozsah("g" & posledný riadok).Hodnota = txtAdresa. Hodnota
.Rozsah("h" & posledný riadok).Hodnota = txtTelefón. Hodnota
.Rozsah("i" & posledný riadok).Hodnota = txtMesto. Hodnota
.Rozsah("j" & posledný riadok).Hodnota = txtKrajina. Hodnota
.Rozsah("k" & posledný riadok).Hodnota = txtZip. Hodnota
.Rozsah("l" & posledný riadok).Hodnota = txtNárodnosť. Hodnota
.Rozsah("m" & posledný riadok).Hodnota = txtKurz. Hodnota
.Range("n" & lastrow).Value = txtCourseID.Value
.Range("o" & lastrow).Value = txtenrollmentstart. Hodnota
.Range("p" & lastrow).Value = txtenrollmentend. Hodnota
.Rozsah("q" & posledný riadok).Hodnota = trvanie kurzu txt. Hodnota
.Rozsah("r" & posledný riadok).Hodnota = txtOdd. Hodnota

Koniec s
sht. Aktivovať

'určiť pohlavie podľa vstupu používateľa
Ak optMale. Hodnota = Pravda Potom sht. Rozsah("g" & lastrow).Hodnota = "Muž"
Ak optFemale. Hodnota = Pravda Potom sht. Rozsah ("g" & lastrow).Hodnota = "Žena"
„Zobraziť okno so správou v prípade, že používateľ vyberie prepínač Áno

Ak optYes. Hodnota = Pravda vtedy
MsgBox „Vyberte podrobnosti o platbe nižšie“
inak:
Ukončiť Sub

Koniec Ak

End Sub

Ak si nie ste istí, čo časti alebo ktorýkoľvek z kódov znamená, neznepokojujte sa. V ďalšej časti si to dôkladne vysvetlíme.

Vysvetlenie kódu automatického formulára

Textové polia budú obsahovať kombináciu textových a číselných hodnôt, takže je nevyhnutné obmedziť vstup používateľa. The Číslo aplikácie, Študentská karta, Vek, Telefón, ID kurzua Trvanie kurzu by mal obsahovať iba čísla, zatiaľ čo zvyšok bude obsahovať text.

Pomocou an AK kód spustí vyskakovacie okná s chybou, ak používateľ zadá hodnotu znaku alebo textu do ktoréhokoľvek z číselných polí.

Keďže overenia chýb sú na mieste, musíte textové polia prepojiť s bunkami hárka.

The lastrow premenné vypočítajú posledný vyplnený riadok a uložia do nich hodnoty na dynamické použitie.

Nakoniec sa hodnoty z textových polí prilepia do prepojeného hárka Excel.

Vymazať kódy formulárov a výstupných tlačidiel

V jasný musíte napísať kód na vymazanie existujúcich hodnôt z používateľského formulára. To možno vykonať nasledujúcim spôsobom:

So mnou
.txtČ. Hodnota = ""
.txtStudentID.Value = ""
..txtName. Hodnota = ""
.txtVek. Hodnota = ""
.txtAdresa. Hodnota = ""
.txtTelefón. Hodnota = ""
.txtCity. Hodnota = ""
.txtKrajina. Hodnota = ""
.txtDOB.Value = ""
.txtZip. Hodnota = ""
.txt Štátna príslušnosť. Hodnota = ""
.txt Kurz. Hodnota = ""
.txtCourseID.Value = ""
.txtenrollmentstart. Hodnota = ""
.txtenrollmentend. Hodnota = ""
.txt trvanie kurzu. Hodnota = ""
.txtOdd. Hodnota = ""
.cmbPaymentMode. Hodnota = ""
.cmbPlatba. Hodnota = ""
.optFemale. Hodnota = nepravda
.optMale. Hodnota = nepravda
.optÁno. Hodnota = nepravda
.optNo. Hodnota = nepravda

Koniec s

V východ zadajte nasledujúci kód na zatvorenie používateľského formulára.

Private Sub CommandButton5_Click()
Vylož ma
End Sub

Ako posledný krok musíte zadať niekoľko záverečných kúskov kódu na vytvorenie rozbaľovacích hodnôt pre rozbaľovacie polia (v rámci platobných rámcov).

Private Sub UserForm_Activate()

Pomocou cmbPayment
.Jasný
.Pridať položku ""
.Pridať položku "Áno"
.Pridať položku "Nie"
Koniec s
S režimom cmbPaymentMode

.Jasný
.Pridať položku ""
.Pridať položku "Hotovosť"
.Pridať položku "Karta"
.Pridať položku "Skontrolovať"
Koniec s
End Sub

Automatizácia VBA uľahčuje prácu

VBA je mnohostranný jazyk, ktorý slúži na mnohé účely. Používateľské formuláre sú len jedným aspektom v rámci VBA – existuje mnoho ďalších použití, ako je konsolidácia zošitov a pracovných hárkov, zlučovanie viacerých hárkov Excelu a ďalšie užitočné automatizačné použitia.

Bez ohľadu na cieľ automatizácie, VBA túto úlohu zvládne. Ak sa budete neustále učiť a cvičiť, neexistuje žiadny aspekt vášho pracovného postupu, ktorý by ste nemohli zlepšiť.

Ako zlúčiť viacero hárkov programu Excel pomocou makra VBA

Zlúčenie údajov z viac ako jedného hárku Excelu v tom istom zošite je skutočný problém... kým nepoužijete makrá VBA.

Prečítajte si ďalej

zdieľamTweetujteEmail
Súvisiace témy
  • Programovanie
  • Produktivita
  • Programovanie vo Visual Basic
  • Microsoft Excel
O autorovi
Gaurav Siyal (50 publikovaných článkov)

Gaurav Siyal má dvojročné skúsenosti s písaním písania pre sériu digitálnych marketingových firiem a dokumentov životného cyklu softvéru.

Viac od Gaurava Siyala

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné e-knihy a exkluzívne ponuky!

Ak sa chcete prihlásiť na odber, kliknite sem