Een case-statement schrijven in vba (met voorbeeld)
Een case-instructie is een type instructie dat door de voorwaarden loopt en een waarde retourneert wanneer aan de eerste voorwaarde is voldaan.
U kunt de volgende basissyntaxis gebruiken om een case-instructie in VBA te schrijven:
SubCaseStatement () Dim i As Integer For i = 2 To 9 Select Case Range(" B " & i).Value Case Is >= 30 result=" Great " Box Is >= 20 result = " Good " Case Is >= 15 result=" OK " Case Else result=" Bad " End Select Range(" C " & i).Value = result Next i End Sub
In dit specifieke voorbeeld wordt naar elke cel in het bereik B2:B9 gekeken en worden de volgende waarden in het bereik C2:C9 geretourneerd:
- “ Uitstekend ” als de waarde in kolom B groter is dan of gelijk is aan 30.
- Anders “ Goed ” als de waarde in kolom B groter is dan of gelijk is aan 20.
- Anders “ OK ” als de waarde in kolom B groter is dan of gelijk is aan 15.
- Anders “ slecht ” als aan geen van de voorgaande voorwaarden is voldaan.
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: een Case Statement schrijven in VBA
Laten we zeggen dat we de volgende gegevensset in Excel hebben die het aantal punten weergeeft dat door verschillende basketbalspelers is gescoord:
Stel dat we een casusverklaring willen schrijven om aan elke speler de waarde Uitstekend, Goed, OK of Slecht toe te kennen op basis van het aantal gescoorde punten.
We kunnen hiervoor de volgende macro maken:
SubCaseStatement () Dim i As Integer For i = 2 To 9 Select Case Range(" B " & i).Value Case Is >= 30 result=" Great " Box Is >= 20 result = " Good " Case Is >= 15 result=" OK " Case Else result=" Bad " End Select Range(" C " & i).Value = result Next i End Sub
Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:
Kolom C retourneert een waarde Uitstekend, Goed, OK of Slecht op basis van de overeenkomstige waarde in kolom B.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:
VBA: een lijst met waarden classificeren
VBA: unieke waarden binnen bereik tellen
VBA: het aantal rijen binnen bereik tellen