Sisällysluettelo:
- A Select Case example
- Kuten seuraavassa esimerkissä voidaan osoittaa, voit valita Vaihtoehtoiset rakenteet. Tämä rutiini tutkii aktiivisen solun ja näyttää viestin, joka kuvaa solun sisältöä. Huomaa, että menettelyssä on kolme Select Case -rakennetta ja jokaisella on oma End Select -lausuma:
Video: Top 25 Excel 2016 Tips and Tricks 2025
Select Case -rakenne on hyödyllinen VBA-rakenne päätöksiä varten, joissa on kolme tai useampia vaihtoehtoja Excel 2016: ssä (vaikka se toimii myös kahden vaihtoehdon kanssa, mikä tarjoaa vaihtoehdon If-Then-Else -rakenteelle).
A Select Case example
Seuraavassa esimerkissä on esimerkki Case Case:
Sub ShowDiscount3 () Dim Quantity As Long Dim Alennus Double Quantity = InputBox ("Enter Quantity: Case 0 - 24 Alennus = 0. 1 Case 25 To 49 Alennus = 0. 15 Case 50 to 74 Alennus = 0. 2 Case Is> = 75 Alennus = 0. 25 End Valitse MsgBox "Alennus:" & Alennus Alle Al > Tässä esimerkissä määrämuuttujaa arvioidaan. Rutiinitarkastukset neljästä eri tapauksesta (0-24, 25-49, 50-74 ja 75 tai enemmän).
Sub ShowDiscount4 () Dim Quantity As Long Dim Discount As Double Quantity = InputBox ("Enter Quantity:") Valitse Case Quantity Case 0 to 24: Discount = 0. 1 Case 25 To 49: Alennus = 0. 15 Case 50 - 74: Alennus = 0. 2 Loppu Valitse MsgBox "Alennus:" & Alennus loppu Sub
Kun VBA suorittaa Select Case -rakenteen, rakenne poistuu heti, kun VBA löytää todellisen tapauksen ja suorittaa tapauksen lausunnot.
Kuten seuraavassa esimerkissä voidaan osoittaa, voit valita Vaihtoehtoiset rakenteet. Tämä rutiini tutkii aktiivisen solun ja näyttää viestin, joka kuvaa solun sisältöä. Huomaa, että menettelyssä on kolme Select Case -rakennetta ja jokaisella on oma End Select -lausuma:
Sub CheckCell () Dim Msg kuin merkkijonon valitseminen IsEmpty (ActiveCell) -tyyppinen tapaus True Msg = "on tyhjä. "Case Else Select Case ActiveCell. HasFormula Case Todellinen Msg = "on kaava" Tapaus Else Select Case IsNumeric (ActiveCell) Asia Todellinen Msg = "on numero" Case Else Msg = "on tekstiä" End Select End Select End Valitse MsgBox "Cell" ja ActiveCell. Osoite & & "& Msg End Sub
Logiikka menee näin:
-
Jos se ei ole tyhjä, tarkista, sisältääkö se kaavan.
-
Jos kaava ei ole, selvitä, sisältääkö se numeerisen arvon tai tekstin.
-
Kun rutiini päättyy, Msg-muuttuja sisältää merkkijonon, joka kuvaa solun sisältöä. MsgBox-toiminto näyttää kyseisen viestin.
CheckCell-proseduurissa näkyvä viesti.
Voit pesää Valitse Case-rakenteet niin syvälle kuin haluat, mutta varmista, että jokaisella Select Case -lausunnalla on vastaava End Select -lausunto.Jos et vieläkään ole vakuuttunut siitä, että indenting-koodi on vaivan arvoinen, edellinen luettelo toimii hyvänä esimerkkinä. Sisennykset todella tekevät pesimästasot selvästi. Tarkastele samaa menettelytapaa ilman sisennystä:
Sub CheckCell () Dim Msg kuin merkkijonon valitseminen IsEmpty (ActiveCell) -tyyppinen tapaus True Msg = "on tyhjä. "Case Else Select Case ActiveCell. HasFormula Case Todellinen Msg = "on kaava" Tapaus Else Select Case IsNumeric (ActiveCell) Asia Todellinen Msg = "on numero" Case Else Msg = "on tekstiä" End Select End Select End Valitse MsgBox "Cell" ja ActiveCell. Osoite & & "& Msg End Sub
Melko käsittämätön, eh?