Struktura Select Case është një strukturë e dobishme VBA për vendimet që përfshijnë tre ose më shumë opsione në Excel 2016 (megjithëse funksionon gjithashtu me dy opsione, duke ofruar një alternativë ndaj strukturës If-Then-Else).
Një shembull i rastit të zgjedhur
Shembulli i mëposhtëm tregon se si të përdoret struktura Select Case:
Nën ShowDiscount3()
Sasia e zbehtë për aq kohë sa
Zbritje e zbehtë si e dyfishtë
Sasia = InputBox ("Fut sasinë:")
Zgjidhni Sasinë e rastit
Rasti 0 deri në 24
Zbritje = 0.1
Rasti 25 deri në 49
Zbritje = 0.15
Rasti 50 deri në 74
Zbritje = 0.2
Rasti është >= 75
Zbritje = 0.25
Fund Zgjidh
MsgBox "Zbritje: " & Zbritje
Fundi Nën
Në këtë shembull, ndryshorja Sasia është duke u vlerësuar. Kontrollet rutinë për katër raste të ndryshme (0–24, 25–49, 50–74 dhe 75 ose më shumë).
Çdo numër deklaratash mund të ndjekin çdo deklaratë Case, dhe të gjitha ato ekzekutohen nëse rasti është i vërtetë. Nëse përdorni vetëm një deklaratë, si në këtë shembull, mund ta vendosni deklaratën në të njëjtën linjë me fjalën kyçe Case, të paraprirë nga një dy pika - karakteri ndarës i deklaratës VBA. Kjo e bën kodin më kompakt dhe pak më të qartë. Ja se si duket rutina në këtë format:
Nën ShowDiscount4 ()
Sasia e zbehtë për aq kohë sa
Zbritje e zbehtë si e dyfishtë
Sasia = InputBox ("Fut sasinë:")
Zgjidhni Sasinë e rastit
Rasti 0 deri në 24: Zbritje = 0.1
Rasti 25 deri në 49: Zbritje = 0,15
Rasti 50 deri në 74: Zbritje = 0.2
Rasti është >= 75: Zbritje = 0,25
Fund Zgjidh
MsgBox "Zbritje: " & Zbritje
Fundi Nën
Kur VBA ekzekuton një strukturë Select Case, struktura del sapo VBA të gjejë një rast të vërtetë dhe të ekzekutojë deklaratat për atë rast.
Një shembull i mbivendosur Select Case
Siç tregohet në shembullin e mëposhtëm, mund të futni strukturat Select Case. Kjo rutinë shqyrton qelizën aktive dhe shfaq një mesazh që përshkruan përmbajtjen e qelizës. Vini re se procedura ka tre struktura Select Case, dhe secila ka deklaratën e saj End Select:
Nën CheckCell()
Dim Msg As String
Zgjidh Case Is Empty (ActiveCell)
Rasti i vërtetë
Msg = "është bosh."
Rasti tjetër
Zgjidhni Case ActiveCell.HasFormula
Rasti i vërtetë
Msg = "ka një formulë"
Rasti tjetër
Zgjidh rasti është numerik (Celia aktive)
Rasti i vërtetë
Msg = "ka një numër"
Rasti tjetër
Msg = "ka tekst"
Fund Zgjidh
Fund Zgjidh
Fund Zgjidh
MsgBox "Cell" & ActiveCell. Adresa & " " & Msg
Fundi Nën
Logjika shkon diçka si kjo:
Zbuloni nëse qeliza është bosh.
Nëse nuk është bosh, shikoni nëse përmban një formulë.
Nëse nuk ka formulë, zbuloni nëse ajo përmban një vlerë numerike ose tekst.
Kur rutina përfundon, ndryshorja Msg përmban një varg që përshkruan përmbajtjen e qelizës. Funksioni MsgBox e shfaq atë mesazh.

Një mesazh i shfaqur nga procedura CheckCell.
Mund të futni strukturat Select Case aq thellë sa të keni nevojë, por sigurohuni që çdo deklaratë Select Case të ketë një deklaratë korresponduese End Select.
Nëse ende nuk jeni të bindur se ia vlen përpjekja për futjen e kodit, renditja e mëparshme shërben si një shembull i mirë. Vërshimet me të vërtetë për të bërë të qarta nivelet e foleve. Hidhini një sy të njëjtës procedurë pa ndonjë dhëmbëzim:
Nën CheckCell()
Dim Msg As String
Zgjidh Case Is Empty (ActiveCell)
Rasti i vërtetë
Msg = "është bosh."
Rasti tjetër
Zgjidhni Case ActiveCell.HasFormula
Rasti i vërtetë
Msg = "ka një formulë"
Rasti tjetër
Zgjidh rasti është numerik (Celia aktive)
Rasti i vërtetë
Msg = "ka një numër"
Rasti tjetër
Msg = "ka tekst"
Fund Zgjidh
Fund Zgjidh
Fund Zgjidh
MsgBox "Cell" & ActiveCell. Adresa & " " & Msg
Fundi Nën
Mjaft e pakuptueshme, a?