Select Case -rakenteen käyttäminen Excel 2016 VBA:ssa

Select Case -rakenne on hyödyllinen VBA-rakenne päätöksille, joihin liittyy vähintään kolme vaihtoehtoa Excel 2016:ssa (vaikka se toimii myös kahdella vaihtoehdolla ja tarjoaa vaihtoehdon If-Then-Else-rakenteelle).

Esimerkki Valitse tapaus

Seuraava esimerkki näyttää, kuinka Select Case -rakennetta käytetään:

Sub ShowDiscount3()
  Himmeä Määrä yhtä pitkä
  Himmeä alennus Double
  Määrä = InputBox("Anna määrä:")
  Valitse Tapauksen määrä
    Tapaus 0 - 24
      Alennus = 0,1
    Tapaus 25 - 49
      Alennus = 0,15
    Tapaus 50 - 74
      Alennus = 0,2
    Tapaus on >= 75
      Alennus = 0,25
  Lopeta valinta
  MsgBox “Alennus: “ & Alennus
Lopeta ala

Tässä esimerkissä määrä-muuttujaa arvioidaan. Rutiinitarkistukset koskevat neljää eri tapausta (0–24, 25–49, 50–74 ja 75 tai enemmän).

Jokaista Case-lausetta voi seurata mikä tahansa määrä lauseita, ja ne kaikki suoritetaan, jos tapaus on tosi. Jos käytät vain yhtä lausetta, kuten tässä esimerkissä, voit laittaa lauseen samalle riville Case-avainsanan kanssa, ja sitä edeltää kaksoispiste eli VBA-lauseen erotinmerkki. Tämä tekee koodista kompaktimman ja hieman selkeämmän. Tältä rutiini näyttää tässä muodossa:

Sub ShowDiscount4 ()
  Himmeä Määrä yhtä pitkä
  Himmeä alennus Double
  Määrä = InputBox("Anna määrä:")
  Valitse Tapauksen määrä
    Tapaus 0–24: Alennus = 0,1
    Tapaus 25–49: Alennus = 0,15
    Tapaus 50–74: Alennus = 0,2
    Tapaus on >= 75: Alennus = 0,25
  Lopeta valinta
  MsgBox “Alennus: “ & Alennus
Lopeta ala

Kun VBA suorittaa Select Case -rakenteen, rakenteesta poistutaan heti, kun VBA löytää tositapauksen ja suorittaa kyseisen tapauksen käskyt.

Sisäkkäinen Select Case -esimerkki

Kuten seuraavassa esimerkissä osoitetaan, voit upottaa Select Case -rakenteita. 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 -lauseensa:

Sub CheckCell()
  Himmeä viesti merkkijonona
  Valitse Case IsEmpty (ActiveCell)
    Tapaus Totta
     Msg = "on tyhjä."
    Tapaus Muu
     Valitse Case ActiveCell.HasFormula
       Tapaus Totta
        Msg = "on kaava"
       Tapaus Muu
        Valitse tapaus isnumeric(ActiveCell)
          Tapaus Totta
           Viesti = "on numero"
          Tapaus Muu
           Viesti = "sisältää tekstiä"
        Lopeta valinta
    Lopeta valinta
  Lopeta valinta
  Viestilaatikko "Solu" & ActiveCell.Address & " " & Viesti
Lopeta ala

Logiikka menee jotakuinkin näin:

Selvitä, onko solu tyhjä.

Jos se ei ole tyhjä, katso, sisältääkö se kaavan.

Jos kaavaa ei ole, selvitä, sisältääkö se numeerisen arvon vai tekstin.

Kun rutiini päättyy, Msg-muuttuja sisältää merkkijonon, joka kuvaa solun sisältöä. MsgBox-toiminto näyttää tämän viestin.

Select Case -rakenteen käyttäminen Excel 2016 VBA:ssa

CheckCell-toimenpiteen näyttämä viesti.

Voit upottaa Select Case -rakenteita niin syvälle kuin tarvitset, mutta varmista, että jokaisella Select Case -lausekkeella on vastaava End Select -lauseke.

Jos et ole vieläkään vakuuttunut siitä, että koodin sisentäminen kannattaa, edellinen luettelo on hyvä esimerkki. Sisennykset todella tekevät pesimätasoista selkeitä. Katso sama menettely ilman sisennystä:

Sub CheckCell()
Himmeä viesti merkkijonona
Valitse Case IsEmpty (ActiveCell)
Tapaus Totta
Msg = "on tyhjä."
Tapaus Muu
Valitse Case ActiveCell.HasFormula
Tapaus Totta
Msg = "on kaava"
Tapaus Muu
Valitse tapaus isnumeric(ActiveCell)
Tapaus Totta
Viesti = "on numero"
Tapaus Muu
Viesti = "sisältää tekstiä"
Lopeta valinta
Lopeta valinta
Lopeta valinta
Viestilaatikko "Solu" & ActiveCell.Address & " " & Viesti
Lopeta ala

Melko käsittämätöntä, vai mitä?


Kuinka estää Microsoft Wordia avaamasta tiedostoja vain luku -tilassa Windowsissa

Kuinka estää Microsoft Wordia avaamasta tiedostoja vain luku -tilassa Windowsissa

Kuinka estää Microsoft Wordia avaamasta tiedostoja vain luku -tilassa Windowsissa Microsoft Word avaa tiedostot vain luku -tilassa, jolloin niiden muokkaaminen on mahdotonta? Älä huoli, menetelmät ovat alla

Microsoft Word -asiakirjojen virheellisen tulostuksen korjaaminen

Microsoft Word -asiakirjojen virheellisen tulostuksen korjaaminen

Virheiden korjaaminen virheellisten Microsoft Word -asiakirjojen tulostuksessa. Virheet tulostettaessa Word-asiakirjoja, joissa on muuttuneet fontit, sotkuiset kappaleet, puuttuva teksti tai kadonnut sisältö ovat melko yleisiä. Älä kuitenkaan

Pyyhi kynä- ja korostuspiirrokset PowerPoint-dioistasi

Pyyhi kynä- ja korostuspiirrokset PowerPoint-dioistasi

Jos olet piirtänyt PowerPoint-dioihin esityksen aikana kynää tai korostuskynää, voit tallentaa piirustukset seuraavaa esitystä varten tai poistaa ne, jotta seuraavan kerran näytät ne. Aloitat puhtailla PowerPoint-dioilla. Pyyhi kynä- ja korostuskynäpiirrokset noudattamalla näitä ohjeita: Pyyhi rivit yksi kerrallaan […]

Tyylikirjaston sisältö SharePoint 2010:ssä

Tyylikirjaston sisältö SharePoint 2010:ssä

Tyylikirjasto sisältää CSS-tiedostoja, Extensible Stylesheet Language (XSL) -tiedostoja ja kuvia, joita käyttävät ennalta määritetyt sivupohjat, sivuasettelut ja säätimet SharePoint 2010:ssä. CSS-tiedostojen etsiminen julkaisusivuston tyylikirjastosta: Valitse Sivuston toiminnot→ Näytä Kaikki sivuston sisältö. Sivuston sisältö tulee näkyviin. Style-kirjasto sijaitsee […]

Muotoile numerot tuhansiksi ja miljooniksi Excel-raporteissa

Muotoile numerot tuhansiksi ja miljooniksi Excel-raporteissa

Älä hukuta yleisöäsi jättimäisillä numeroilla. Microsoft Excelissä voit parantaa koontinäyttöjesi ja raporttiesi luettavuutta muotoilemalla numerot näyttämään tuhansia tai miljoonia.

SharePoint-sivustojen jakaminen ja seuraaminen

SharePoint-sivustojen jakaminen ja seuraaminen

Opi käyttämään SharePointin sosiaalisen verkostoitumisen työkaluja, joiden avulla yksilöt ja ryhmät voivat kommunikoida, tehdä yhteistyötä, jakaa ja pitää yhteyttä.

Kuinka muuntaa päivämäärät Julian-muotoihin Excelissä

Kuinka muuntaa päivämäärät Julian-muotoihin Excelissä

Juliaanisia päivämääriä käytetään usein valmistusympäristöissä aikaleimana ja pikaviitteenä eränumerolle. Tämän tyyppisen päivämääräkoodauksen avulla jälleenmyyjät, kuluttajat ja huoltoedustajat voivat tunnistaa tuotteen valmistusajankohdan ja siten tuotteen iän. Julian-päivämääriä käytetään myös ohjelmoinnissa, armeijassa ja tähtitiedessä. Erilainen […]

Access-verkkosovelluksen luominen

Access-verkkosovelluksen luominen

Voit luoda verkkosovelluksen Access 2016:ssa. Mikä verkkosovellus sitten on? No, verkko tarkoittaa, että se on verkossa, ja sovellus on vain lyhenne sanoista "sovellus". Mukautettu verkkosovellus on online-tietokantasovellus, jota käytetään pilvestä selaimen avulla. Rakennat ja ylläpidät verkkosovellusta työpöytäversiossa […]

Pikakäynnistyspalkki SharePoint 2010:ssä

Pikakäynnistyspalkki SharePoint 2010:ssä

Useimmat SharePoint 2010:n sivut näyttävät navigointilinkkien luettelon pikakäynnistyspalkissa sivun vasemmassa reunassa. Pikakäynnistyspalkki näyttää linkit esitellyn sivuston sisältöön, kuten luetteloihin, kirjastoihin, sivustoihin ja julkaisusivuihin. Pikakäynnistyspalkki sisältää kaksi erittäin tärkeää linkkiä: Koko sivuston sisältö -linkki: […]

Mitä Ratkaisijan virheilmoitukset Excelissä tarkoittavat?

Mitä Ratkaisijan virheilmoitukset Excelissä tarkoittavat?

Yksinkertaisille ongelmille Excelin Ratkaisija löytää yleensä nopeasti optimaaliset Ratkaisijamuuttujien arvot tavoitefunktiolle. Mutta joissakin tapauksissa Ratkaisijalla on vaikeuksia löytää Solver-muuttujan arvoja, jotka optimoivat tavoitefunktion. Näissä tapauksissa Ratkaisija näyttää yleensä viestin tai virheilmoituksen, joka kuvaa tai käsittelee ongelmaa, jonka […]