/ / Loop gennem Controls i Excel VBA

Loop gennem Controls i Excel VBA

Med kun få linjer kode kan vi nemt loop gennem kontrol på en Excel VBA Brugerformular. Brugerformularen, vi skal oprette, ser ud som følger:

Loop gennem Controls i Excel VBA

For at oprette denne brugerformular, udfør følgende trin.

1. Åbn Visual Basic Editor. Hvis Project Explorer ikke er synlig, skal du klikke på Vis, Project Explorer.

2. Klik på Indsæt, Brugerformular. Hvis værktøjskassen ikke vises automatisk, skal du klikke på Vis, Værktøjskasse. Din skærm skal opsættes som nedenfor.

Brugerform Screen Setup i Excel VBA

3. Tilføj etiketten, afkrydsningsfelterne (først øverst, den anden under den første og så videre) og kommandoknappen. Når dette er gennemført, skal resultatet være i overensstemmelse med billedet af den tidligere viste brugerformular. For eksempel oprette en afkrydsningsfelt kontrol ved at klikke på CheckBox fra Toolbox. Dernæst kan du trække et afkrydsningsfelt på brugerformularen.

4. Du kan ændre navnene og teksten på kontrollerne. Navne bruges i Excel VBA-koden. Undertekster er dem, der vises på din skærm. Det er god praksis at ændre navnene på kontrollerne, men det er ikke nødvendigt her, fordi vi kun har få kontroller i dette eksempel. Hvis du vil ændre billedteksten til brugerformularen, etiketten, afkrydsningsfelterne og kommandoknappen, skal du klikke på Vis, Egenskaber Vindue og klikke på hver kontrol.

5. For at vise brugerformularen skal du placere en kommandoknap på dit regneark og tilføje følgende kode linje:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Vi har nu oprettet den første del af brugerformularen. Selv om det ser pænt ud, sker der intet endnu, når vi klikker på knappen Ryd.

6. Åbn Visual Basic Editor.

7. Dobbeltklik på UserForm1 i Project Explorer.

8. Dobbeltklik på ryd knappen.

9. Tilføj følgende kodelinjer:

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

Forklaring: Excel VBA løkker gennem alle kontrolelementer på brugerformularen. TypeName-funktionen bruges til at filtrere ud af afkrydsningsfeltets kontroller. Hvis en afkrydsningsfelt kontrollerer, fjerner Excel VBA afkrydsningsfeltet. Kontr er tilfældigt valgt her, du kan bruge et hvilket som helst navn. Husk at henvise til dette navn i resten af ​​din kode.

Resultat, når du klikker på knappen Ryd:

Loop gennem kontrolresultater

Læs også: