Lomakkeiden käyttäminen VBA:ssa antaa sinulle tyhjän kankaan, jonka avulla voit suunnitella ja järjestää lomakkeita tarpeidesi mukaan milloin tahansa. Opitaan Download.vn:n avulla luomaan automaattisia tiedonsyöttölomakkeita Excel VBA: ssa !
Luo käyttäjälomake Excel VBA:lla
Avaa uusi Excel-työkirja ja suorita muutama alustava vaihe ennen tiedonsyöttölomakkeen luomisen aloittamista.
Tallenna työkirja haluamallasi nimellä, älä unohda vaihtaa tiedostotyypiksi Excel Macro-Enabled Workbook.
Lisää tähän työkirjaan 2 arkkia seuraavilla nimillä:
- Sheet1 : Etusivu
- Sheet2 : Opiskelijatietokanta
Voit tietysti muuttaa heidän nimensä haluamallasi tavalla.
Lisää aloitussivulle käyttäjälomakkeen makron ohjauspainike. Siirry Kehittäjä- välilehdelle > napsauta Painike avattavasta Lisää - luettelosta . Aseta tämä painike mihin tahansa laskentataulukon kohtaan.
Kun olet asettanut painikkeen, nimeä se uudelleen. Napsauta sitä hiiren kakkospainikkeella > napsauta Uusi liittääksesi lomakkeen näyttävän makron.
Kirjoita muokkausikkunaan seuraava koodi:
Sub Button1_Click()
UserForm.Show
End Sub
Kun kotisivu ja opiskelijatietokanta ovat valmiina, on aika suunnitella käyttäjälomake. Siirry Kehittäjä- välilehdelle > napsauta Visual Basicia avataksesi editorin . Vaihtoehtoisesti voit avata muokkausikkunan painamalla ALT+F11 .
Napsauta Lisää- välilehteä ja valitse UserForm . Käyttäjälomake on valmis käytettäväksi. Tämän lomakkeen mukana avautuu työkalupakki, joka sisältää kaikki asettelun suunnitteluun tarvittavat työkalut.
Valitse tästä työkalulaatikosta Kehys . Vedä se käyttäjälomakkeeseen ja muuta sen kokoa.
Kohdassa (nimi) voit muuttaa tämän kehyksen nimeä. Jos haluat näyttää nimen käyttöliittymässä, voit muuttaa nimeä Kuvateksti- sarakkeessa .
Valitse sitten työkalulaatikosta Label ja aseta 2 tarraa tähän laatikkoon. Nimeä etunimi uudelleen hakemusnumeroksi ja toinen nimi opiskelijatunnukseksi .
Käytä samaa uudelleennimeämisprosessia Ominaisuudet-valikon Otsikko - toiminnolla . Varmista, että valitset vastaavan tarran ennen kuin nimeät sen uudelleen.
Lisää seuraavaksi 2 tekstiruutua tarralaatikkoon. Niitä käytetään käyttäjien syötteiden sieppaamiseen. Muuta kahden tekstiruudun nimet Ominaisuudet- sarakkeen (Nimi) kautta seuraavasti :
- Tekstilaatikko1 : txtApplicationNo
- Tekstilaatikko2 : txtStudentID
Opiskelijatietokehyksen suunnittelu
Lisää pystysuuntainen kehys ja lisää 10 tarraa ja 10 tekstiruutua. Nimeä tarra uudelleen seuraavasti:
- Label3 : Nimi
- Tunniste4 : Ikä
- Label5 : Osoite
- Tunniste6 : Puhelin
- Tunniste 7 : Kaupunki
- Label8 : Maa
- Tunniste9 : Syntymäaika
- Label10 : postinumero
- Tunniste 11 : Kansallisuus
- Tunniste 12 : Sukupuoli
Lisää vastaava tekstiruutu näiden tarrojen viereen ja lisää kahdesta valintapainikelaatikosta käyttäjälomakkeen työkalulaatikosta sukupuolitunnisteen viereen. Muuta heidän nimensä mieheksi ja naiseksi (mukautettuna).
Suunnittele yksityiskohtainen kurssikehys
Lisää toinen kehys pystysuunnassa ja lisää 6 tarraa, 6 tekstiruutua, jotka vastaavat kutakin tarraa. Nimeä tarra uudelleen seuraavasti:
- Label13 : Kurssin nimi
- Tunniste14 : Kurssin tunnus
- Tunniste 15 : Ilmoittautumisen alkamispäivä
- Tunniste16 : Ilmoittautumisen päättymispäivä
- Label17 : Kurssin kesto
- Label18 : Osasto
Suunnittele maksutietokehys
Lisää uusi kehys, lisää uusi tarra ja nimeä se uudelleen "Haluatko päivittää maksutiedot?" Aseta 2 valintapainiketta ; nimeä ne uudelleen Kyllä ja Ei .
Lisää vastaavasti uusi kehys, joka sisältää 2 lisätarraa ja 2 yhdistelmäruutua. Nimeä tarra uudelleen seuraavasti:
- Label19 : Maksu vastaanotettu
- Label20 : Maksutapa
Navigointitaulun suunnittelu
Lisää viimeiseen kehykseen 3 painiketta työkalulaatikosta, jotka sisältävät koodin lomakkeiden käyttöönottoa varten. Nimeä painikkeet uudelleen seuraavasti:
- Painike1 : Tallenna tiedot
- Painike 2 : selkeä muoto
- Painike 3 : Poistu
Kirjoita automaattinen lomakekoodi: Painike tietojen tallentamiseen
Kaksoisnapsauta Tallenna tiedot -painiketta . Lisää seuraavaan moduuliin seuraava koodi:
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
Koodin selitys automaattisessa muodossa:
Tekstilaatikot sisältävät tekstiä ja numeerisia arvoja, joten sinun on rajoitettava käyttäjän syötteitä. Hakemusnumero, opiskelijatunnus, ikä, puhelin, kurssitunnus ja kurssin kesto sisältävät vain numeroita, loput tekstiä.
IF -komentoa käyttämällä koodi laukaisee virheponnahdusikkunan, jos käyttäjä syöttää merkin tai tekstiarvon mihin tahansa numerokenttään.
Koska virhetarkistus tapahtuu, sinun on linkitettävä tekstilaatikot laskentataulukon soluihin.
Viimeisen rivin muuttujat laskevat viimeksi täytetyn rivin ja tallentavat arvon sisään joustavaa käyttöä varten.
Lopuksi nämä arvot liitetään linkitetyn Excel-arkin tekstiruutuun.
Tyhjennä lomake ja poistu
Tyhjennyspainikkeeseen sinun on kirjoitettava koodi , joka poistaa nykyiset arvot käyttäjän lomakkeesta seuraavasti:
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
Syötä poistumispainikkeeseen seuraava koodi käyttäjän lomakkeeseen :
Private Sub CommandButton5_Click()
Unload Me
End Sub
Viimeisessä vaiheessa sinun on syötettävä muutama viimeinen koodinpätkä, jotta voit luoda pudotusvalikon arvot yhdistelmäruudulle (kassakehyksessä).
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
Yllä kerrotaan, kuinka voit luoda automaattisen tiedonsyöttölomakkeen Excel VBA:ssa . Toivottavasti artikkeli on hyödyllinen sinulle.