Select Case uppbyggingin er gagnleg VBA uppbygging fyrir ákvarðanir sem fela í sér þrjá eða fleiri valkosti í Excel 2016 (þótt það virki líka með tveimur valkostum, sem veitir val til Ef-Þá-Else uppbyggingu).
Dæmi um Select Case
Eftirfarandi dæmi sýnir hvernig á að nota Select Case uppbyggingu:
Undirsýningafsláttur3()
Dimmt magn eins lengi
Dimm afsláttur sem tvöfaldur
Magn = InputBox(“Sláðu inn magn: “)
Veldu Málsmagn
Mál 0 til 24
Afsláttur = 0,1
Mál 25 til 49
Afsláttur = 0,15
Mál 50 til 74
Afsláttur = 0,2
Mál er >= 75
Afsláttur = 0,25
Endurval
MsgBox “Afsláttur: “ & Afsláttur
End Sub
Í þessu dæmi er verið að meta magnbreytuna. Venjulega athugar fjórar mismunandi tilvik (0–24, 25–49, 50–74 og 75 eða fleiri).
Hvaða fjöldi fullyrðinga sem er getur fylgt hverri málsyfirlýsingu og þær eru allar framkvæmdar ef málið er satt. Ef þú notar aðeins eina setningu, eins og í þessu dæmi, geturðu sett setninguna á sömu línu og Case lykilorðið, á undan með tvípunkti — VBA yfirlýsingaskilastafinn. Þetta gerir kóðann þéttari og aðeins skýrari. Svona lítur venjan út á þessu sniði:
Undirsýningafsláttur4 ()
Dimmt magn eins lengi
Dimm afsláttur sem tvöfaldur
Magn = InputBox(“Sláðu inn magn: “)
Veldu Málsmagn
Tilfelli 0 til 24: Afsláttur = 0,1
Mál 25 Til 49: Afsláttur = 0,15
Mál 50 Til 74: Afsláttur = 0,2
Case Is >= 75: Afsláttur = 0,25
Endurval
MsgBox “Afsláttur: “ & Afsláttur
End Sub
Þegar VBA keyrir Select Case uppbyggingu er strúktúrnum hætt um leið og VBA finnur satt tilvik og framkvæmir yfirlýsingarnar fyrir það tilvik.
Nestið Select Case dæmi
Eins og sýnt er í eftirfarandi dæmi geturðu hreiðrað Select Case mannvirki. Þessi venja skoðar virka klefann og birtir skilaboð sem lýsir innihaldi frumunnar. Taktu eftir að aðferðin hefur þrjú val tilviksskipulags og hver hefur sína eigin lokavalsyfirlýsingu:
Undir CheckCell()
Dimm skilaboð sem strengur
Veldu Case IsEmpty (ActiveCell)
Mál satt
Msg = "er autt."
Tilfelli Annað
Veldu Case ActiveCell.HasFormula
Mál satt
Msg = "er með formúlu"
Tilfelli Annað
Veldu Case IsNumeric (ActiveCell)
Mál satt
Msg = "er með númer"
Tilfelli Annað
Msg = "er með texta"
Endurval
Endurval
Endurval
MsgBox “Cell “ & ActiveCell.Address & “ “ & Msg
End Sub
Rökfræðin er eitthvað á þessa leið:
Finndu út hvort hólfið sé tómt.
Ef það er ekki tómt skaltu athuga hvort það inniheldur formúlu.
Ef það er engin formúla skaltu komast að því hvort hún inniheldur tölugildi eða texta.
Þegar venjan lýkur inniheldur Msg breytan streng sem lýsir innihaldi frumunnar. MsgBox aðgerðin sýnir þessi skilaboð.

Skilaboð birt með CheckCell ferlinu.
Þú getur hreiðrað Select Case uppbyggingu eins djúpt og þú þarft, en vertu viss um að hver Select Case setning hafi samsvarandi End Select yfirlýsingu.
Ef þú ert enn ekki sannfærður um að inndráttarkóði sé erfiðisins virði, þá er fyrri skráning gott dæmi. Innskotin í raun til að gera varpstigin skýr. Skoðaðu sömu aðferð án inndráttar:
Undir CheckCell()
Dimm skilaboð sem strengur
Veldu Case IsEmpty (ActiveCell)
Mál satt
Msg = "er autt."
Tilfelli Annað
Veldu Case ActiveCell.HasFormula
Mál satt
Msg = "er með formúlu"
Tilfelli Annað
Veldu Case IsNumeric (ActiveCell)
Mál satt
Msg = "er með númer"
Tilfelli Annað
Msg = "er með texta"
Endurval
Endurval
Endurval
MsgBox “Cell “ & ActiveCell.Address & “ “ & Msg
End Sub
Frekar óskiljanlegt, ha?