300 Piemēri

Interaktīva Userform

Interactive Userform

Zemāk mēs apskatīsim programmu Excel VBA kas rada an interaktīvā Userform . Lietotāja veidlapa, kuru mēs izveidosim, izskatās šādi:





Excel VBA interaktīvā lietotāja veidlapa

Paskaidrojums: ikreiz, kad ievadāt vērtību ID tekstlodziņā, Excel VBA ielādē atbilstošo ierakstu. Noklikšķinot uz pogas Rediģēt / Pievienot, Excel VBA rediģē lapas ierakstu vai pievieno ierakstu, kad ID vēl nav. Poga Notīrīt notīra visus tekstlodziņus. Poga Aizvērt aizver Userform.





Lai izveidotu šo Userform, veiciet tālāk norādītās darbības.

1. Atveriet Visual Basic redaktors . Ja Project Explorer nav redzams, noklikšķiniet uz View, Project Explorer.



2. Noklikšķiniet uz Ievietot, Lietotāja forma. Ja Toolbox neparādās automātiski, noklikšķiniet uz View, Toolbox. Ekrāns ir jāiestata, kā norādīts zemāk.

Userform ekrāna iestatīšana programmā Excel VBA

3. Pievienojiet etiķetes, tekstlodziņus (vispirms augšpusē, otro zem pirmā utt.) Un komandu pogas. Kad tas ir pabeigts, rezultātam jāatbilst iepriekš parādītajam Userform attēlam. Piemēram, izveidojiet tekstlodziņa vadīklu, rīkjoslā noklikšķinot uz TextBox. Pēc tam lietotāja veidlapā varat vilkt tekstlodziņu.

vba katrai atlasītajai šūnai

4. Varat mainīt vadīklu nosaukumus un parakstus. Vārdi tiek izmantoti Excel VBA kodā. Paraksti ir tie, kas parādās jūsu ekrānā. Ir laba prakse mainīt vadības ierīču nosaukumus, taču šeit tas nav nepieciešams, jo šajā piemērā mums ir tikai dažas vadīklas. Lai mainītu etiķešu, tekstlodziņu un komandu pogu parakstus, noklikšķiniet uz Skatīt, Rekvizītu logs un noklikšķiniet uz katras vadīklas.

5. Lai parādītu Userform, ievietojiet a komandu pogu darblapā un pievienojiet šādu koda rindiņu:

Privāts SubCommandButton1_Click ()

UserForm1.Show

Beigas Sub

Tagad mēs izveidosim Sub UserForm_Initialize. Izmantojot Userform metodi Show, šī apakšiedaļa tiks izpildīta automātiski.

6. Atveriet Visual Basic redaktors .

7. Project Explorer ar peles labo pogu noklikšķiniet uz UserForm1 un pēc tam noklikšķiniet uz Skatīt kodu.

8. Kreisajā nolaižamajā sarakstā izvēlieties Userform. Nolaižamajā labajā sarakstā atlasiet Inicializēt.

9. Pievienojiet šādu koda rindiņu:

Privāts SubUserForm_Initialize ()

TextBox1.SetFocus

Beigas Sub

Paskaidrojums: šī koda rindiņa koncentrējas uz pirmo tekstlodziņu, jo šeit mēs vēlamies sākt, kad tiek ielādēta Userform.

Tagad esam izveidojuši Userform pirmo daļu. Lai gan tas jau izskatās glīti, nekas vēl nenotiks, ievadot vērtību ID tekstlodziņā vai noklikšķinot uz vienas no komandu pogām.

10. Project Explorer ar peles labo pogu noklikšķiniet uz UserForm1 un pēc tam noklikšķiniet uz Skatīt kodu.

11. Kreisajā nolaižamajā sarakstā izvēlieties TextBox1. Labajā nolaižamajā sarakstā izvēlieties Mainīt.

12. Pievienojiet šādu koda rindiņu:

Privāts SubTextBox1_Change ()

GetData

Beigas Sub

13. Project Explorer veiciet dubultklikšķi uz UserForm1.

14. Veiciet dubultklikšķi uz pogas Rediģēt / Pievienot komandu.

15. Pievienojiet šādu koda rindiņu:

Privāts SubCommandButton1_Click ()

EditAdd

Beigas Sub

16. Veiciet dubultklikšķi uz komandas pogas Notīrīt.

17. Pievienojiet šādu koda rindiņu:

Privāts SubCommandButton2_Click ()

ClearForm

Beigas Sub

Paskaidrojums: šie apakšsadaļas izsauc citus apakšsadaļas, kuras mēs izveidosim pēc sekundes.

18. Veiciet dubultklikšķi uz pogas Aizvērt komandu.

19. Pievienojiet šādu koda rindiņu:

Privāts SubCommandButton3_Click ()

Izkraut Mani

Beigas Sub

Paskaidrojums: šī koda rindiņa aizver Userform.

Laiks izveidot apakšsadaļas. Jūs varat iet caur mūsu Funkcija un apakš nodaļā, lai uzzinātu vairāk par apakšsadaļām. Ja jūs steidzaties, vienkārši ievietojiet modulī šādas apakšsadaļas (Visual Basic redaktorā noklikšķiniet uz Ievietot, Modulis).

20. Vispirms deklarējiet trīs Integer tipa mainīgos un vienu Būla tipa mainīgo. Deklarējiet mainīgos sadaļā Vispārējās deklarācijas (moduļa augšpusē). Šādā veidā mainīgie ir jādeklarē tikai vienu reizi, un jūs varat tos izmantot vairākos apakšnodaļās.

Navid Vesels skaitlis, i Vesels skaitlis, j Vesels skaitlis, karogs Būla

21. Pievienojiet apakšdatu GetData.

SubGetData ()

JaIsNumeric (UserForm1.TextBox1.Value)Tad
karogs =Nepatiess
i = 0
id = UserForm1.TextBox1.Value

Vai KamērŠūnas (i + 1, 1). Vērtība '

JaŠūnas (i + 1, 1). Vērtība = idTad
karogs =Taisnība
Priekšj = 2Uz3
UserForm1.Controls ('TextBox' & j). Vērtība = šūnas (i + 1, j). Vērtība
Nākamaisj
Beigas Ja

i = i + 1

Cilpa

Jakarogs =Nepatiess Tad
Priekšj = 2Uz3
UserForm1.Controls ('TextBox' & j). Vērtība = '
Nākamaisj
Beigas Ja

Citādi
ClearForm
Beigas Ja

Beigas Sub

Paskaidrojums: Ja ID tekstlodziņā ir skaitliska vērtība, Excel VBA meklē ID un ielādē atbilstošo ierakstu. Mēs izmantojam Vadīklu kolekcija lai viegli pārvietotos pa tekstlodziņiem. Ja Excel VBA nevar atrast ID (karogs joprojām ir False), tas iztukšo otro un trešo tekstlodziņu. Ja tekstlodziņā ID nav skaitliskas vērtības, Excel VBA izsauc ClearForm apakšpunktu.

22. Pievienojiet ClearForm apakš.

SubClearForm ()

Priekšj = 1Uz3
UserForm1.Controls ('TextBox' & j). Vērtība = '
Nākamaisj

Beigas Sub

Paskaidrojums: Excel VBA notīra visus tekstlodziņus.

23. Pievienojiet apakšiedaļu EditAdd.

SubEditAdd ()

NavemptyRow Ilgi

JaUserForm1.TextBox1.Value 'Tad
karogs =Nepatiess
i = 0
id = UserForm1.TextBox1.Value
emptyRow = WorksheetFunction.CountA (Diapazons ('A: A')) + 1

Vai KamērŠūnas (i + 1, 1). Vērtība '

JaŠūnas (i + 1, 1). Vērtība = idTad
karogs =Taisnība
Priekšj = 2Uz3
Šūnas (i + 1, j). Vērtība = UserForm1.Controls ('TextBox' & j). Vērtība
Nākamaisj
Beigas Ja

i = i + 1

Cilpa

Jakarogs =Nepatiess Tad
Priekšj = 1Uz3
Šūnas (emptyRow, j) .Value = UserForm1.Controls ('TextBox' & j) .Value
Nākamaisj
Beigas Ja

Beigas Ja

Beigas Sub

Paskaidrojums: Ja ID tekstlodziņš nav tukšs, Excel VBA rediģē ierakstu lapā (pretēji ieraksta ielādei, kā redzējām iepriekš). Ja Excel VBA nevar atrast ID (karogs joprojām ir False), tas pievieno ierakstu nākamajai tukšajai rindai. Mainīgais emptyRow ir pirmā tukšā rinda un palielinās katru reizi, kad tiek pievienots ieraksts.

24. Iziet no Visual Basic redaktora, 1. rindā ievadiet tālāk redzamās etiķetes un pārbaudiet Userform.

kā es varu aprēķināt attiecību starp diviem skaitļiem

Excel VBA interaktīvā lietotāja veidlapa

11/11 Pabeigts! Uzziniet daudz vairāk par userforms>
Doties uz nākamo nodaļu: Diapazons



^