Declarație de caz Excel VBA Select - explicată cu exemple

Excel VBA are construcția IF Then Else pe care o puteți utiliza pentru a analiza mai multe condiții și a executa coduri pe baza acestor condiții.

O altă construcție similară care vă permite să verificați condițiile multiple este SELECȚEAZĂ CAZUL afirmație.

Selectare caz este util atunci când aveți trei sau mai multe condiții pe care doriți să le verificați. Puteți utiliza acest lucru și cu două condiții (dar consider că If Then Else este mai ușor de utilizat în aceste cazuri).

Un exemplu simplu în care declarația Select Case este utilă atunci când doriți să obțineți nota unui elev pe baza notelor pe care le-a obținut (prezentat ca exemplu mai târziu în acest tutorial).

Notă: Toate exemplele de coduri acoperite în acest tutorial sunt menite să fie plasate într-un modul în VBA.

Selectați Sintaxă de majuscule

Mai jos este sintaxa Select Select Case în Excel VBA:

Selectați cazul Test_Expression Case Value_1 Cod bloc când Test_Expression = Value_1 Case Value_2 Code Block când Test_Expression = Value_2 Case Value_3 Code Block când Test_Expression = Value_3 Case Alse Code Block când nu sunt îndeplinite niciuna dintre condițiile de caz Sfârșit Selectați
  • Test_Expression: Aceasta este expresia a cărei valoare o analizăm folosind diferite cazuri (explicată mai bine cu exemplele de mai jos).
  • Condition_1, Condition_2,…: Acestea sunt condițiile în care este testată expresia textului. Dacă îndeplinește condiția, atunci se execută blocul de cod pentru condiția dată.

Pentru fiecare instrucțiune Select Case pe care o utilizați, trebuie să utilizați declarația End Select.

Notă: De îndată ce este îndeplinită o condiție, VBA părăsește constructul de caz selectat. Deci, dacă aveți cinci condiții și a doua condiție este îndeplinită, VBA va ieși din Select Case - iar restul condițiilor nu vor fi testate.

Selectați Exemple de cazuri

Acum, pentru a înțelege mai bine cum să folosiți instrucțiunea Select Case în VBA, să trecem prin câteva exemple.

Rețineți că majoritatea exemplelor din acest tutorial sunt menite să explice conceptul. Acestea pot fi sau nu cea mai bună modalitate de a realiza munca.

Să începem cu un exemplu simplu de a vedea cum Select Case ne permite să verificăm condițiile.

Exemplul 1 - Verificați numerele

În exemplul de mai jos, codul solicită utilizatorului să introducă orice număr între 1 și 5 și apoi afișează o casetă de mesaj cu numărul introdus de utilizator.

Sub CheckNumber () Dim UserInput As Integer UserInput = InputBox ("Vă rugăm să introduceți un număr între 1 și 5") Selectați Case UserInput Case 1 MsgBox "Ați introdus 1" Case 2 MsgBox "Ați introdus 2" Case 3 MsgBox "Ați introdus 3" Cazul 4 MsgBox "Ai introdus 4" Cazul 5 MsgBox "Ai introdus 5" Sfârșit Selectează Sfârșit Sub

Rețineți că acest cod este departe de a fi util și nici măcar nu este infailibil. De exemplu, dacă introduceți 6 sau orice șir, nu ar face nimic. Dar, așa cum am menționat, intenția mea aici este să arăt cum funcționează Select Case.

Exemplul 2 - Utilizarea cazului selectat cu condiția IS

Puteți utiliza o condiție IS cu constructul Select Case pentru a verifica valoarea numerelor.

Codul de mai jos verifică dacă numărul de intrare este mai mare de 100 sau nu.

Sub CheckNumber () Dim UserInput As Integer UserInput = InputBox ("Vă rugăm să introduceți un număr") Selectați cazul UserInput Case Is = 100 MsgBox "Ați introdus un număr mai mare de (sau egal cu) 100" End Select End End

Exemplul 3 - Utilizarea minusculelor pentru a prinde totul

În exemplul de mai sus, am folosit două condiții (mai mici de 100 sau mai mari sau egale cu 100).

În locul celui de-al doilea caz cu o condiție, puteți utiliza și Case Else.

Case Else acționează ca un sistem de capturare și orice lucru care nu intră în niciunul dintre cazurile anterioare este tratat de Case Else.

Mai jos este un exemplu de cod în care am folosit Case Else:

Sub CheckNumber () Dim UserInput As Integer UserInput = InputBox ("Vă rugăm să introduceți un număr") Selectați cazul UserInput Case Is <100 MsgBox "Ați introdus un număr mai mic de 100" Case Else MsgBox "Ați introdus un număr mai mare de (sau egal cu ) 100 "End Select End End

Exemplul 4 - Utilizarea unei game de numere

În Selectare caz, puteți verifica, de asemenea, pentru o serie de numere.

Codul de mai jos cere o intrare și afișează o casetă de mesaj bazată pe valoare.

Sub CheckNumber () Dim UserInput As Integer UserInput = InputBox ("Vă rugăm să introduceți un număr între 1 și 100") Selectați cazul UserInput Case 1 la 25 MsgBox "Ați introdus un număr mai mic de 25" Case 26 la 50 MsgBox "Ați introdus un număr între 26 și 50 "Caz 51 până la 75 MsgBox" Ați introdus un număr între 51 și 75 "Caz 75 până la 100 MsgBox" Ați introdus un număr mai mare de 75 "Sfârșit Selectați Sfârșit Sub

Exemplul 5 - Obțineți nota pe baza notelor marcate

Până acum am văzut exemple de bază (care nu sunt cu adevărat utile în lumea practică).

Iată un exemplu care este mai aproape de un exemplu din lumea reală în care puteți utiliza Select Case în Excel VBA.

Următorul cod vă va oferi nota pe care o obține un elev pe baza notelor la un examen.

Sub Grade () Dim StudentMarks As Integer Dim FinalGrade As String StudentMarks = InputBox ("Enter Marks") Selectați cazul StudentMarks Cazul este <33 FinalGrade = "F" Cazul 33 la 50 FinalGrade = "E" Cazul 51 la 60 FinalGrade = "D "Cazul 60 la 70 FinalGrade =" C "Cazul 70 la 90 FinalGrade =" B "Cazul 90 la 100 FinalGrade =" A "Sfârșit Selectați MsgBox" Nota este "& FinalGrade Sfârșit Sub

Codul de mai sus cere utilizatorului notele și, pe baza acestuia, arată o casetă de mesaj cu nota finală.

În codul de mai sus, am specificat toate condițiile - pentru punctele 0 - 100.

O altă modalitate de a folosi Select Case este utilizarea unui Case Else la final. Acest lucru este util atunci când ați luat în considerare toate condițiile și apoi specificați ce să faceți atunci când niciuna dintre condiții nu este îndeplinită.

Codul de mai jos este o variantă a codului de notă cu o modificare mică. În cele din urmă, are o instrucțiune Case else, care va fi executată atunci când niciuna dintre condițiile de mai sus nu este adevărată.

Sub CheckOddEven () Dim StudentMarks As Integer Dim FinalGrade As String StudentMarks = InputBox ("Enter Marks") Select Case StudentMarks Case Is <33 FinalGrade = "F" Case 33 To 50 FinalGrade = "E" Case 51 To 60 FinalGrade = "D "Cazul 60 la 70 FinalGrade =" C "Cazul 70 la 90 FinalGrade =" B "Alt caz FinalGrade =" A "Sfârșit Selectați MsgBox" Nota este "& FinalGrade Sfârșit Sub

Exemplul 6 - Crearea unei funcții personalizate (UDF) folosind Select Case

În exemplul de mai sus, codul a cerut utilizatorului introducerea mărcilor.

De asemenea, puteți crea o funcție personalizată (Funcție definită de utilizator) care poate fi utilizată la fel ca orice funcție obișnuită de foaie de lucru și care va returna nota elevilor.

Mai jos este codul care va crea formula personalizată:

Funcția GetGrade (StudentMarks as Integer) Dim FinalGrade Ca șir Selectați cazul StudentMarks Cazul este <33 FinalGrade = "F" Cazul 33 la 50 FinalGrade = "E" Cazul 51 la 60 FinalGrade = "D" Cazul 60 la 70 FinalGrade = "C" Caz 70 până la 90 FinalGrade = "B" Altele cazuri FinalGrade = "A" Final Selectați GetGrade = FinalGrade Final Function

Odată ce aveți acest cod în modul, puteți utiliza funcția GetGrade în foaia de lucru așa cum se arată mai jos.

Exemplul 7 - Verificați ODD / EVEN cu Select Case

Mai jos este un exemplu de cod în care verific dacă numărul din celula A1 este impar sau par.

Sub CheckOddEven () CheckValue = Range ("A1"). Valoare Select Case (CheckValue Mod 2) = 0 Case True MsgBox "Numărul este par" Case False MsgBox "Numărul este impar" End Select End End

Exemplul 8 - Verificarea zilei / săptămânii (condiții multiple)

De asemenea, puteți utiliza Selectare caz pentru a verifica mai multe valori în același caz.

De exemplu, codul de mai jos folosește data curentă pentru a arăta dacă astăzi este o săptămână sau un weekend (unde zilele de weekend sunt sâmbătă și duminică)

Sub CheckWeekday () Select Case Case Weekday (Now) Case 1, 7 MsgBox "Today is a Weekend" Case Else MsgBox "Today is a Weekday" End Select End End

În codul de mai sus, verificăm două condiții (1 și 7) în același caz.

Notă: funcția Ziua săptămânii returnează 1 pentru duminică și 7 pentru sâmbătă.

Exemplul 9 - Declarații de caz selectate imbricate

Puteți, de asemenea, să cuibăriți o instrucțiune Select Case în alta.

Mai jos este un cod care verifică dacă o zi este o săptămână sau un weekend și, dacă este un weekend, se va afișa dacă este sâmbătă sau duminică.

Sub CheckWeekday () Select Case Case Weekday (Now) Case 1, 7 Select Case Weekday (Now) Case 1 MsgBox "Today is Sunday" Case Else MsgBox "Today is Saturday" End Select Case Else MsgBox "Today is a Weekday" End Select End Sub

În codul de mai sus, am imbricat Select Case pentru a verifica dacă weekendul este sâmbătă sau duminică.

Notă: Exemplul prezentat mai sus este pentru a explica conceptul. Acesta nu este cel mai bun sau cel mai practic mod de a afla ziua săptămânii / weekendul.

Exemplul 10 - Verificarea șirului de text cu selectarea cazului

Puteți verifica anumite șiruri folosind Select Case și apoi executați codul pe baza acestuia.

În exemplul de cod de mai jos, îi solicită utilizatorului să introducă numele departamentului și afișează numele persoanei cu care ar trebui să se conecteze pentru integrare.

Sub OnboardConnect () Dim Department As String Department = InputBox ("Introduceți numele departamentului") Selectați cazul Departamentul Caz "Marketing" MsgBox "Vă rugăm să vă conectați cu Bob Raines pentru Onboarding" Caz "Finanțe" MsgBox "Vă rugăm să vă conectați cu Patricia Cruz pentru Onboarding" Caz "HR" MsgBox "Vă rugăm să vă conectați cu Oliver Rand pentru Onboarding" Caz "Admin" MsgBox "Vă rugăm să vă conectați cu Helen Hume pentru Onboarding" Case Else MsgBox "Vă rugăm să vă conectați cu Tony Randall pentru Onboarding" End Select End End Sub

Sper că toate exemplele de mai sus au fost utile în înțelegerea conceptului și a aplicației Select Case în Excel VBA.

Vă pot plăcea, de asemenea, următoarele tutoriale VBA:

  • Bucle VBA Excel - Pentru Următorul, Faceți În timp, Faceți până, Pentru fiecare.
  • Pentru următoarea buclă în Excel VBA.
  • Cum să înregistrați o macro în Excel.

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave