300 Pavyzdžių

Interaktyvi vartotojo forma

Interactive Userform

Žemiau apžvelgsime programą Excel VBA tai sukuria interaktyvi Userform . Vartotojo forma, kurią ketiname sukurti, atrodo taip:





„Excel VBA Interactive Userform“

Paaiškinimas: kai įvedate reikšmę ID teksto laukelyje, „Excel VBA“ įkelia atitinkamą įrašą. Spustelėjus mygtuką Redaguoti / pridėti, „Excel VBA“ redaguoja įrašą lape arba prideda įrašą, kai ID dar nėra. Mygtukas Išvalyti išvalo visus teksto laukelius. Mygtukas Uždaryti uždaro vartotojo formą.





Norėdami sukurti šią vartotojo formą, atlikite šiuos veiksmus.

1. Atidarykite „Visual Basic“ redaktorius . Jei „Project Explorer“ nematomas, spustelėkite „View“, „Project Explorer“.



2. Spustelėkite Insert, Userform. Jei įrankių rinkinys nerodomas automatiškai, spustelėkite Rodinys, įrankių dėžė. Jūsų ekranas turi būti nustatytas taip, kaip nurodyta toliau.

„Userform“ ekrano sąranka „Excel VBA“

3. Pridėkite etikečių, teksto laukelių (pirmasis viršuje, antras po pirmuoju ir pan.) Ir komandų mygtukai. Kai tai bus baigta, rezultatas turėtų atitikti anksčiau pateiktą „Userform“ paveikslėlį. Pvz., Sukurkite teksto laukelio valdiklį spustelėdami „TextBox“ įrankių dėžėje. Tada galite vilkti teksto laukelį „Userform“.

kaip pridėti tendenciją „Excel 2016“

4. Galite pakeisti valdiklių pavadinimus ir antraštes. Pavadinimai naudojami „Excel“ VBA kode. Subtitrai yra tie, kurie rodomi jūsų ekrane. Gera praktika yra keisti valdiklių pavadinimus, tačiau čia tai nėra būtina, nes šiame pavyzdyje turime tik keletą valdiklių. Norėdami pakeisti etikečių, teksto laukų ir komandų mygtukų antraštes, spustelėkite Rodinys, ypatybių langas ir spustelėkite kiekvieną valdiklį.

5. Norėdami parodyti „Userform“, įdėkite a komandinis mygtukas darbalapyje ir pridėkite šią kodo eilutę:

Privatus SubCommandButton1_Click ()

UserForm1.Show

Galas Sub

Dabar mes sukursime Sub UserForm_Initialize. Kai naudosite rodymo metodą naudotojo formai, šis poskyris bus vykdomas automatiškai.

6. Atidarykite „Visual Basic“ redaktorius .

7. „Project Explorer“ dešiniuoju pelės mygtuku spustelėkite UserForm1, tada spustelėkite View Code.

8. Kairiajame išskleidžiamajame sąraše pasirinkite Userform. Iš dešiniojo išskleidžiamojo sąrašo pasirinkite Inicijuoti.

9. Pridėkite šią kodo eilutę:

Privatus SubUserForm_Initialize ()

TextBox1.SetFocus

Galas Sub

Paaiškinimas: šioje kodo eilutėje dėmesys sutelkiamas į pirmąjį teksto laukelį, nes čia norime pradėti, kai įkeliama „Userform“.

Dabar sukūrėme pirmąją „Userform“ dalį. Nors atrodo jau tvarkingai, dar nieko neįvyks, kai įvedame reikšmę į ID teksto laukelį arba kai spustelime vieną iš komandų mygtukų.

10. „Project Explorer“ dešiniuoju pelės mygtuku spustelėkite UserForm1, tada spustelėkite View Code.

11. Iš kairiojo išskleidžiamojo sąrašo pasirinkite TextBox1. Iš dešiniojo išskleidžiamojo sąrašo pasirinkite Keisti.

12. Pridėkite šią kodo eilutę:

Privatus SubTextBox1_Change ()

„GetData“

Galas Sub

13. „Project Explorer“ dukart spustelėkite UserForm1.

14. Dukart spustelėkite komandos Redaguoti / Pridėti komandą.

15. Pridėkite šią kodo eilutę:

Privatus SubCommandButton1_Click ()

EditAdd

Galas Sub

16. Dukart spustelėkite komandų išvalymo mygtuką.

17. Pridėkite šią kodo eilutę:

Privatus SubCommandButton2_Click ()

Švari anketa

Galas Sub

Paaiškinimas: šie abonentai skambina kitiems abonentams, kuriuos ketiname sukurti per sekundę.

18. Dukart spustelėkite komandų uždarymo mygtuką.

19. Pridėkite šią kodo eilutę:

Privatus SubCommandButton3_Click ()

Iškrauti mane

Galas Sub

Paaiškinimas: ši kodo eilutė uždaro „Userform“.

Laikas sukurti antrinius. Galite eiti per mūsų Funkcija ir sub skyriuje, kad sužinotumėte daugiau apie abonentus. Jei skubate, tiesiog įdėkite šiuos modulius į modulį („Visual Basic“ redaktoriuje spustelėkite Įterpti, Modulis).

20. Pirmiausia deklaruokite tris „Integer“ tipo kintamuosius ir vieną „Boolean“ tipo kintamąjį. Kintamuosius nurodykite skyriuje Bendrosios deklaracijos (modulio viršuje). Tokiu būdu jums tereikia deklaruoti kintamuosius vieną kartą ir galite juos naudoti keliuose abonentuose.

Nė vienasidKaip Sveikasis skaičius, iKaip Sveikasis skaičius, jKaip Sveikasis skaičius, vėliavaKaip Būlinį

21. Pridėkite „GetData“ antrinę dalį.

Sub„GetData“ ()

JeiIsNumeric (UserForm1.TextBox1.Value)Tada
vėliava =Netiesa
i = 0
id = UserForm1.TextBox1.Value

Daryk NorsLąstelės (i + 1, 1). Vertė '

JeiLąstelės (i + 1, 1). Vertė = idTada
vėliava =Tiesa
Dėlj = 2Į3
UserForm1.Controls ('TextBox' & j) .Value = Ląstelės (i + 1, j).
Kitasj
Galas Jei

i = i + 1

Kilpa

Jeivėliava =Netiesa Tada
Dėlj = 2Į3
UserForm1.Controls ('TextBox' & j) .Verta = '
Kitasj
Galas Jei

Kitas
Švari anketa
Galas Jei

Galas Sub

Paaiškinimas: Jei teksto laukelyje ID yra skaitinė reikšmė, „Excel VBA“ ieško ID ir įkelia atitinkamą įrašą. Mes naudojame Valdiklių kolekcija lengvai pereiti per teksto laukelius. Jei „Excel VBA“ neranda ID (vėliava vis tiek yra klaidinga), ji ištuština antrąjį ir trečiąjį teksto laukus. Jei teksto laukelyje ID nėra skaitinės reikšmės, „Excel VBA“ iškviečia „ClearForm“ antrinę dalį.

22. Pridėkite „ClearForm“ antrinę dalį.

SubŠvari anketa()

Dėlj = 1Į3
UserForm1.Controls ('TextBox' & j) .Verta = '
Kitasj

Galas Sub

Paaiškinimas: „Excel VBA“ išvalo visus teksto laukelius.

23. Pridėkite „EditAdd“ poskyrį.

SubEditAdd ()

Nė vienasemptyRowKaip Ilgas

JeiUserForm1.TextBox1.Value 'Tada
vėliava =Netiesa
i = 0
id = UserForm1.TextBox1.Value
emptyRow = WorksheetFunction.CountA (Diapazonas ('A: A')) + 1

Daryk NorsLąstelės (i + 1, 1). Vertė '

JeiLąstelės (i + 1, 1). Vertė = idTada
vėliava =Tiesa
Dėlj = 2Į3
Ląstelės (i + 1, j). Vertė = UserForm1.Controls („TextBox“ & j).
Kitasj
Galas Jei

i = i + 1

Kilpa

Jeivėliava =Netiesa Tada
Dėlj = 1Į3
Ląstelės (emptyRow, j) .Value = UserForm1.Controls ('TextBox' & j) .Value
Kitasj
Galas Jei

Galas Jei

Galas Sub

Paaiškinimas: Jei ID teksto laukas nėra tuščias, „Excel VBA“ redaguoja lapo įrašą (priešingai nei įkeliant įrašą, kaip matėme anksčiau). Jei „Excel VBA“ neranda ID (vėliava vis dar yra klaidinga), įrašas įtraukiamas į kitą tuščią eilutę. Kintamasis emptyRow yra pirmoji tuščia eilutė ir didėja kiekvieną kartą pridedant įrašą.

24. Išeikite iš „Visual Basic“ redaktoriaus, įveskite toliau pateiktas etiketes į 1 eilutę ir išbandykite „Userform“.

kaip „Excel“ reitinguoti nuo aukščiausio iki žemiausio

„Excel VBA Interactive Userform“

11/11 baigtas! Sužinokite daug daugiau apie vartotojo formas>
Eiti į kitą skyrių: diapazonas



^