„Excel VBA Interactive Userform“ - paprastos „Excel“ makrokomandos

Turinys

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

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“ redaktorių. Jei „Project Explorer“ nematomas, spustelėkite „View“, „Project Explorer“.

2. Spustelėkite Įterpti, Vartotojo forma. Jei įrankių dėžė nerodoma automatiškai, spustelėkite Rodinys, įrankių dėžė. Jūsų ekranas turi būti nustatytas taip, kaip nurodyta toliau.

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“.

4. Galite pakeisti valdiklių pavadinimus ir antraštes. Pavadinimai naudojami „Excel“ VBA kode. Subtitrai yra tie, kurie rodomi jūsų ekrane. Gera praktika yra pakeisti 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 komandų mygtuką į savo darbalapį ir pridėkite šią kodo eilutę:

Privati ​​antrinė komandaButton1_Click ()
UserForm1.Show
Pabaiga Sub

Dabar mes sukursime Sub UserForm_Initialize. Naudojant „Userform“ rodymo metodą, šis antraštė bus automatiškai vykdoma.

6. Atidarykite „Visual Basic“ redaktorių.

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 antrinis vartotojasForm_Initialize ()
TextBox1.SetFocus
Pabaiga 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 antrinis teksto laukelis1_Keisti ()
„GetData“
Pabaiga Sub

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

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

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

Privati ​​antrinė komandaButton1_Click ()
EditAdd
Pabaiga Sub

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

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

Privati ​​antrinė komandaButton2_Click ()
Švari anketa
Pabaiga 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ę:

Privati ​​antrinė komandaButton3_Click ()
Iškrauti mane
Pabaiga Sub

Paaiškinimas: ši kodo eilutė uždaro vartotojo formą.

Laikas sukurti antrinius. Norėdami sužinoti daugiau apie abonentus, galite pereiti į skyrių „Funkcija ir antrinis skyrius“. 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.

Dim id As Integer, i As Integer, j As Integer, flag as Boolean

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

Antrinis „GetData“ ()
Jei IsNumeric (UserForm1.TextBox1.Value) Tada
vėliava = klaidinga
i = 0
id = UserForm1.TextBox1.Value
Atlikite langelius (i + 1, 1) .Vertė ""
Jei ląstelės (i + 1, 1) .Vertybė = id Tada
vėliava = tiesa
Jei j = 2–3
UserForm1.Controls ("TextBox" & j) .Value = Ląstelės (i + 1, j) .Value
Kitas j
Pabaiga Jei
i = i + 1
Kilpa
Jei vėliava = klaidinga, tada
Jei j = 2–3
UserForm1.Controls ("TextBox" & j) .Value = ""
Kitas j
Pabaiga Jei
Kitas
Švari anketa
Pabaiga Jei
Pabaiga Sub

Paaiškinimas: Jei teksto laukelyje ID yra skaitinė reikšmė, „Excel VBA“ ieško ID ir įkelia atitinkamą įrašą. Mes naudojame valdiklių rinkinį, kad lengvai peržiūrėtume teksto laukelius. Jei „Excel VBA“ neranda ID (vėliava vis dar 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 ClearForm ()
Jei j = 1–3
UserForm1.Controls ("TextBox" & j) .Value = ""
Kitas j
Pabaiga Sub

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

23. Pridėkite „EditAdd“ poskyrį.

Sub Edit EditAdd ()
Užtemdyti tuščią eilutę
Jei UserForm1.TextBox1.Value "" Tada
vėliava = klaidinga
i = 0
id = UserForm1.TextBox1.Value
emptyRow = WorksheetFunction.CountA (Diapazonas („A: A“)) + 1
Atlikite langelius (i + 1, 1) .Vertė ""
Jei ląstelės (i + 1, 1) .Vertybė = id Tada
vėliava = tiesa
Jei j = 2–3
Ląstelės (i + 1, j) .Value = UserForm1.Controls ("TextBox" & j) .Value
Kitas j
Pabaiga Jei
i = i + 1
Kilpa
Jei vėliava = klaidinga, tada
Jei j = 1–3
Ląstelės (emptyRow, j) .Value = UserForm1.Controls ("TextBox" & j) .Value
Kitas j
Pabaiga Jei
Pabaiga Jei
Pabaiga 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“.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave