/ / "Loop through Control" "Excel" VBA

"Loop through Control" "Excel" VBA

Mes galime lengvai atlikti keletą kodo eilučių kilpas per kontrolę ant Excel VBA Userform. "Userform", kurį ketiname kurti, atrodo taip:

"Loop through Control" "Excel" VBA

Norėdami sukurti šį Userform, atlikite šiuos veiksmus.

1. Atidarykite "Visual Basic" redaktorių. Jei "Project Explorer" nematoma, spustelėkite "View", "Project Explorer".

2. Spustelėkite Insert, Userform. Jei įrankių dėžė automatiškai pasirodys, spustelėkite Rodyti, įrankių dėžutę. Jūsų ekranas turėtų būti nustatytas žemiau.

"Userform" ekrano sąranka "Excel VBA"

3. Įtraukite etiketę, pažymėkite dėžutes (pirmą viršuje, antrą po pirmąja ir tt) ir komandų mygtuką. Kai tai bus baigta, rezultatas turėtų atitikti anksčiau pateiktą "Userform" paveikslėlį. Pavyzdžiui, sukurkite žymės langelio valdiklį, spustelėdami "ToolBox" spustelėkite "Checkbox". Tada galite vilkti žymės langelį Userform.

4. Galite keisti valdiklių pavadinimus ir antraštes. Vardai naudojami "Excel VBA" kodu. Subtitrai yra tie, kurie rodomi ekrane. Gera praktika pakeisti kontrolinių pavadinimų pavadinimus, tačiau čia nereikia, nes šiame pavyzdyje turime tik keletą kontrolių. Norėdami pakeisti "Userform" antraštę, etiketę, žymėjimo langelius ir komandų mygtuką, spustelėkite "View", "Properties" langą ir spustelėkite kiekvieną valdiklį.

5. Norėdami parodyti "Userform", į savo darbalapį pridėkite komandų mygtuką ir pridėkite šią kodo eilutę:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Dabar sukūrėme pirmąją "Userform" dalį. Nors tai jau atrodo tvarkinga, niekas nebus įvykdytas spustelėjus mygtuką Išvalyti.

6. Atidarykite "Visual Basic" redaktorių.

7. "Project Explorer" dukart spustelėkite "UserForm1".

8. Dukart spustelėkite mygtuką Išvalyti.

9. Įtraukite šias kodo eilutes:

Private Sub CommandButton1_Click()

Dim contr As control

For Each contr In UserForm1.Controls
    If TypeName(contr) = "CheckBox" Then
        contr.Value = False
    End If
Next

End Sub

Paaiškinimas: Excel VBA kilpos per visus "Userform" valdiklius. "TypeName" funkcija naudojama norint išvalyti žymės langelius. Jei pažymėsite langelį, "Excel VBA" panaikins žymės langelį. Kontrastas yra pasirinktas atsitiktine tvarka, galite naudoti bet kokį pavadinimą. Nepamirškite nurodyti šio pavadinimo kitame kode.

Rezultatas spustelėjus mygtuką Išvalyti:

"Loop through Controls" rezultatas

Taip pat perskaitykite: