300 Esimerkkejä

Interaktiivinen käyttäjämuoto

Interactive Userform

Alla tarkastelemme ohjelmaa Excel VBA joka luo interaktiivinen Userform . Luomamme Userform näyttää seuraavalta:





Interaktiivinen Excel VBA -käyttölomake

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.

Userform -näytön asetukset Excel VBA: ssa

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 Boolen

21. 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ä

Interaktiivinen Excel VBA -käyttölomake

11.11 valmis! Lue lisää käyttäjämuodoista>
Siirry seuraavaan lukuun: Alue



^