Inhoudsopgave:
- Een voorbeeld van Select Case
- Zoals aangetoond in het volgende voorbeeld, kunt u Select Case-structuren nesten. Deze routine onderzoekt de actieve cel en geeft een bericht weer dat de inhoud van de cel beschrijft. Merk op dat de procedure drie Select Case-structuren heeft, en elke heeft zijn eigen End Select-instructie:
Video: BMW | ConnectedDrive Services (BMW.nl) 2024
De Select Case-structuur is een nuttige VBA-structuur voor beslissingen waarbij drie of meer beslissingen worden genomen opties in Excel 2016 (hoewel het ook werkt met twee opties, een alternatief bieden voor de If-Then-Else-structuur).
Een voorbeeld van Select Case
Het volgende voorbeeld laat zien hoe u de structuur Select Select gebruikt:
Sub ShowDiscount3 () Schaduwhoeveelheid als langwerpige korting als dubbele hoeveelheid = invoerbox ("Voer hoeveelheid in:") Selecteer zaakhoeveelheid Geval 0 tot 24 Korting = 0. 1 Geval 25 tot 49 Korting = 0. 15 Geval 50 tot 74 Korting = 0. 2 Geval is> = 75 Korting = 0. 25 Einde Selecteer MsgBox "Korting:" & korting Einde sub > In dit voorbeeld wordt de variabele Quantity geëvalueerd. De routine controleert vier verschillende gevallen (0-24, 25-49, 50-74 en 75 of hoger).
Sub ShowDiscount4 () Schaduwhoeveelheid als langwerpige korting als dubbele hoeveelheid = invoerbox ("voer hoeveelheid in:") Selecteer zaakhoeveelheid zaak 0 tot 24: korting = 0. 1 zaak 25 tot 49: Korting = 0. 15 Casus 50 tot 74: korting = 0. 2 Casus is> = 75: korting = 0. 25 Einde Selecteer MsgBox "Korting:" & korting Einde sub
Wanneer VBA een Select Case-structuur uitvoert, de structuur wordt verlaten zodra VBA een echte casus aantreft en de uitspraken voor die zaak uitvoert.
Zoals aangetoond in het volgende voorbeeld, kunt u Select Case-structuren nesten. Deze routine onderzoekt de actieve cel en geeft een bericht weer dat de inhoud van de cel beschrijft. Merk op dat de procedure drie Select Case-structuren heeft, en elke heeft zijn eigen End Select-instructie:
Sub CheckCell () Dim Msg As String Selecteer zaak IsEmpty (ActiveCell) Case True Msg = "is leeg. "Case Else Selecteer Case ActiveCell. HasFormula Case True Msg = "has a formula" Case Else Selecteer Case IsNumeric (ActiveCell) Case True Msg = "heeft een nummer" Case Else Msg = "heeft tekst" Einde Selecteer Einde Selecteer Einde Selecteer MsgBox "Cel" & ActiveCell. Adres & "" & Msg Einde sub
De logica gaat ongeveer als volgt:
-
Controleer of het een formule bevat als deze niet leeg is.
-
Als er geen formule is, zoek dan uit of deze een numerieke waarde of tekst bevat.
-
Wanneer de routine eindigt, bevat de variabele Msg een tekenreeks die de inhoud van de cel beschrijft. De MsgBox-functie geeft dat bericht weer.
Een bericht weergegeven door de CheckCell-procedure.
U kunt Select Case-structuren zo diep nesten als u nodig heeft, maar zorg ervoor dat elke Select Case-instructie een bijbehorende End Select-instructie heeft.Als u er nog steeds niet van overtuigd bent dat inspringende code de moeite waard is, dient de vorige vermelding als een goed voorbeeld. De inkepingen maken de nestniveaus echt duidelijk. Bekijk dezelfde procedure zonder enige inspringing:
Sub CheckCell () Dim Msg As String Select-geval IsEmpty (ActiveCell) Case True Msg = "is leeg. "Case Else Selecteer Case ActiveCell. HasFormula Case True Msg = "has a formula" Case Else Selecteer Case IsNumeric (ActiveCell) Case True Msg = "heeft een nummer" Case Else Msg = "heeft tekst" Einde Selecteer Einde Selecteer Einde Selecteer MsgBox "Cel" & ActiveCell. Adres & "" & Msg End Sub
Tamelijk onbegrijpelijk, nietwaar?