Alla tarkastelemme ohjelmaa Excel VBA joka luo interaktiivinen Userform . Luomamme Userform näyttää seuraavalta:
Selitys: aina kun syötät arvon ID -tekstikenttään, Excel VBA lataa vastaavan tietueen. Kun napsautat Muokkaa / Lisää -painiketta, Excel VBA muokkaa taulukon tietuetta tai lisää tietueen, kun tunnusta ei ole vielä olemassa. Tyhjennä -painike tyhjentää kaikki tekstiruudut. Sulje -painike sulkee käyttäjämuodon.
Voit luoda tämän käyttäjämuodon suorittamalla seuraavat vaiheet.
1. Avaa Visual Basic Editor . Jos Project Explorer ei ole näkyvissä, valitse Näytä, Project Explorer.
2. Napsauta Insert, Userform. Jos Työkaluryhmä ei näy automaattisesti, napsauta Näytä, Työkaluryhmä. Näytön asetukset on määritettävä alla kuvatulla tavalla.
3. Lisää tarrat, tekstiruudut (ensimmäinen yläreunassa, toinen ensimmäisen alapuolella jne.) Ja komentopainikkeet. Kun tämä on suoritettu, tuloksen tulee olla yhdenmukainen aiemmin näytetyn Userform -kuvan kanssa. Luo esimerkiksi tekstiruudun ohjausobjekti napsauttamalla Työkalulaatikkoa TextBox. Seuraavaksi voit vetää käyttäjäruudun tekstiruudun.
makro tuoda tietoja Exceliin
4. Voit muuttaa säätimien nimiä ja kuvatekstejä. Nimiä käytetään Excel VBA -koodissa. Tekstitykset ovat niitä, jotka näkyvät näytölläsi. On hyvä käytäntö muuttaa säätimien nimiä, mutta se ei ole välttämätöntä, koska tässä esimerkissä on vain muutamia säätimiä. Jos haluat muuttaa tarrojen, tekstiruutujen ja komentopainikkeiden kuvatekstejä, napsauta Näytä, Ominaisuudet -ikkuna ja napsauta jokaista ohjainta.
5. Tuo Userform näkyviin asettamalla a komentopainiketta laskentataulukkoon ja lisää seuraava koodirivi:
Yksityinen SubCommandButton1_Click ()UserForm 1.Näytä
Loppu Sub
Aiomme nyt luoda Sub UserForm_Initialize. Kun käytät Näytä -menetelmää Userformissa, tämä osa suoritetaan automaattisesti.
6. Avaa Visual Basic Editor .
7. Napsauta Project Explorerissa hiiren kakkospainikkeella UserForm1 ja valitse sitten Näytä koodi.
8. Valitse Userform vasemmasta avattavasta luettelosta. Valitse Alusta oikeasta avattavasta luettelosta.
9. Lisää seuraava koodirivi:
Yksityinen SubUserForm_Initialize ()TextBox1.SetFocus
Loppu Sub
Selitys: tällä koodirivillä keskitytään ensimmäiseen tekstiruutuun, koska tästä haluamme aloittaa, kun Userform ladataan.
Olemme nyt luoneet Userformin ensimmäisen osan. Vaikka se näyttää jo siistiltä, mitään ei vielä tapahdu, kun syötämme arvon ID -tekstikenttään tai napsautamme jotakin komentopainikkeita.
10. Napsauta Project Explorerissa hiiren kakkospainikkeella UserForm1 ja valitse sitten Näytä koodi.
11. Valitse vasemmasta avattavasta luettelosta TextBox1. Valitse Muuta oikeasta avattavasta luettelosta.
12. Lisää seuraava koodirivi:
Yksityinen SubTextBox1_Change ()GetData
Loppu Sub
13. Kaksoisnapsauta Project Explorerissa UserForm1.
14. Kaksoisnapsauta Muokkaa / Lisää komento -painiketta.
15. Lisää seuraava koodirivi:
Yksityinen SubCommandButton1_Click ()MuokkaaLisää
Loppu Sub
16. Kaksoisnapsauta Tyhjennä -komentopainiketta.
17. Lisää seuraava koodirivi:
Yksityinen SubCommandButton2_Click ()ClearForm
Loppu Sub
Selitys: nämä tilaajat kutsuvat muita alihankkeita, jotka aiomme luoda sekunnissa.
18. Kaksoisnapsauta Sulje -komentopainiketta.
19. Lisää seuraava koodirivi:
Yksityinen SubCommandButton3_Click ()Purkaa minut
Loppu Sub
Selitys: tämä koodirivi sulkee Userformin.
Aika luoda alit. Voit käydä läpi meidän Toiminto ja ali luvussa on lisätietoja alaosista. Jos sinulla on kiire, aseta seuraavat osat moduuliin (Valitse Visual Basic Editorissa Lisää, Moduuli).
20. Ilmoita ensin kolme Integer -tyyppistä muuttujaa ja yksi Boolean -tyyppinen muuttuja. Ilmoita muuttujat Yleiset ilmoitukset -osiossa (moduulin yläosassa). Tällä tavalla sinun on ilmoitettava muuttujat vain kerran ja voit käyttää niitä useissa alitiedoissa.
Ei mitäänidKuten Kokonaisluku, iKuten Kokonaisluku, jKuten Kokonaisluku, lippuKuten Boolen21. Lisää GetData -ali.
SubGetData ()JosIsNumeric (UserForm1.TextBox1.Value)Sitten
lippu =Väärä
i = 0
id = UserForm1.TextBox1.Value
Tehdä Sillä aikaaSolut (i + 1, 1). Arvo ''
JosSolut (i + 1, 1). Arvo = idSitten
lippu =Totta
Vartenj = 2Vastaanottaja3
UserForm1.Controls ('TextBox' & j) .Arvo = Solut (i + 1, j). Arvo
Seuraavaj
Loppu Jos
i = i + 1
Silmukka
Joslippu =Väärä Sitten
Vartenj = 2Vastaanottaja3
UserForm1.Controls ('TextBox' & j). Arvo = ''
Seuraavaj
Loppu Jos
Muu
ClearForm
Loppu Jos
Loppu Sub
Selitys: Jos ID -tekstiruutu sisältää numeerisen arvon, Excel VBA etsii tunnusta ja lataa vastaavan tietueen. Käytämme Säätimien kokoelma selata tekstilaatikoita helposti. Jos Excel VBA ei löydä tunnusta (lippu on edelleen epätosi), se tyhjentää toisen ja kolmannen tekstiruudun. Jos ID -tekstikenttään ei sisälly numeerista arvoa, Excel VBA kutsuu ClearForm -aliosan.
22. Lisää ClearForm -aliosa.
SubClearForm ()Vartenj = 1Vastaanottaja3
UserForm1.Controls ('TextBox' & j). Arvo = ''
Seuraavaj
Loppu Sub
Selitys: Excel VBA tyhjentää kaikki tekstikentät.
23. Lisää EditAdd -ali.
SubMuokkaaLisää ()Ei mitäänemptyRowKuten Pitkä
JosUserForm1.TextBox1.Value ''Sitten
lippu =Väärä
i = 0
id = UserForm1.TextBox1.Value
emptyRow = WorksheetFunction.CountA (Alue ('A: A')) + 1
Tehdä Sillä aikaaSolut (i + 1, 1). Arvo ''
JosSolut (i + 1, 1). Arvo = idSitten
lippu =Totta
Vartenj = 2Vastaanottaja3
Solut (i + 1, j). Arvo = UserForm1.Controls ('TextBox' & j).
Seuraavaj
Loppu Jos
i = i + 1
Silmukka
Joslippu =Väärä Sitten
Vartenj = 1Vastaanottaja3
Solut (emptyRow, j) .Arvo = UserForm1.Controls ('TextBox' & j) .Arvo
Seuraavaj
Loppu Jos
Loppu Jos
Loppu Sub
Selitys: Jos ID -tekstiruutu ei ole tyhjä, Excel VBA muokkaa taulukon tietuetta (päinvastoin kuin tietueen lataaminen, kuten olemme nähneet aiemmin). Jos Excel VBA ei löydä tunnusta (lippu on edelleen epätosi), se lisää tietueen seuraavaan tyhjään riviin. Muuttuja emptyRow on ensimmäinen tyhjä rivi ja kasvaa joka kerta, kun tietue lisätään.
24. Sulje Visual Basic Editor, kirjoita alla näkyvät tarrat riville 1 ja testaa Userform.
kuinka tehdä päivämääräkaavat Excelissä
Siirry seuraavaan lukuun: Alue