Hvordan bruke Select Case Statement i VBA? (Eksempler)

Excel VBA Select Case Statement

Select Case er en erstatning for å skrive ned flere hvis uttalelser i VBA, når vi har mange forhold i en kode, kan det hende vi må bruke flere If-setninger og som kan være kjedelige ettersom det blir mer komplekst ettersom flere av Hvis-setningene er gitt, i velg saksuttalelse definerer vi kriteriene som forskjellige tilfeller og resultater i henhold til dem.

SELECT CASE hjelper i beslutningsprosessen. I dette brukes bare ett uttrykk for å vurdere de forskjellige mulige tilfellene. Flere forhold analyseres enkelt for å utføre den utviklede koden. Denne saksuttalelsen brukes som en erstatningsuttalelse til ELSE IF for å vurdere uttrykk. Det er klassifisert som en logisk funksjon som er innebygd i Excel. For å bruke denne funksjonen legges koden inn via Visual Basic Editor presentert under utviklerfanen.

Forklaring

Ulike utsagnsgrupper brukes i Select Case. Følgende syntaks bør følges for å bruke dette effektivt. Det ligner på bryteruttalelsen som presenteres i andre programmeringsspråk som Java, C # og PHP.

 Velg [Case] ​​Expression for testing [Case] ​​Liste over uttrykk uttalelser (Case 1, Case 2, Case 3 og så videre ...) Case Else (Else Statements) End Select 

Forklaringen på vilkårene knyttet til den valgte saken er gitt som følger

Et uttrykk for testing: Det er nødvendig å vurdere de forskjellige typene data som heltall, streng, boolsk, objekt og karakter.

Liste over uttrykk:  Uttrykk opprettes med saken for å finne den nøyaktige samsvaren med inngangen. Hvis mer enn to uttrykk, skilles disse ved hjelp av kommaoperatøren. 'Er' er et nøkkelord som brukes til å sammenligne de to uttrykkene ved hjelp av de logiske operatorene i excel som =,, =.

  • Sluttvalg: Den lukker saksdefinisjonen for konstruktørvalg
  • Uttalelser: Uttalelser er utviklet ved bruk av saken for å kjøre uttrykkene som evalueres for å analysere om det er noen samsvarende påstand
  • Andre utsagn: Det er å teste den andre uttalelsen når testuttrykket ikke samsvarer med noen saksuttrykk.

Hvordan bruker jeg VBA Select Case Statement?

Select case-funksjonen fra VBA kjører ikke i de vanlige regnearkene. Vi må bruke Visual Basic-alternativet under Utvikler-fanen. Brukerdefinerte funksjoner og koding opprettet i utviklermodus for å kjøre de forskjellige små applikasjonene i forretningsfeltet.

Den brukes i situasjoner der det er nestet hvis uttalelser utmerker seg. Det er det beste alternativet for å håndtere en rekke saksuttalelser. For å bruke dette alternativet effektivt, bør følgende oppgaver utføres

  • Først og fremst må lage en makro ved å plassere kommandoknappkontroll i excel-arket.
  • Høyreklikk deretter på kommandoknappen og velg alternativet for visningskode
  • Plasser koden mellom kommandoknappfunksjonen og avslutt sub
  • Feilsøk koden for å identifisere syntaksfeil.
  • Kompiler koden for å finne kompileringsfeil for å kunne kjøre programmet
  • Endre inngangsverdiene for å observere forskjellige resultater basert på samsvarskriteriene
Du kan laste ned denne VBA Select Case Excel-malen her - VBA Select Case Excel-mal

Eksempel nr. 1 - Enkel valgsak

Dette eksemplet er å forstå det enkle tilfellet for å finne den samsvarende verdien.

Kode:

Private Sub Selcaseexmample () Dim A As Integer A = 20 Velg Case A Case 10 MsgBox "First Case is matched!" Sak 20 MsgBox "Den andre saken er matchet!" Sak 30 MsgBox "Tredje sak matches i Velg sak!" Sak 40 MsgBox "Fjerde sak matches i Velg sak!" Case Else MsgBox "Ingen av saken samsvarer!" End Velg End Sub

Resultat:

Fire saksuttalelser og saksdommer er brukt for å sammenligne testuttrykket med forskjellige saker. I det foreliggende eksempel blir det andre tilfellet matchet som variabel A samsvarer med 20.

Eksempel 2 - 'Til' nøkkelord for å teste karakterene

Dette eksemplet forklarer bruken av søkeordet 'Til' med det valgte tilfellet.

Kode:

Private Sub Selcasetoexample () Dim studentmarks As Integer studentmarks = InputBox ("Enter marks between 1 to 100?") Velg Case studentmarks Case 1 til 36 MsgBox "Mislykkes!" Sak 37 til 55 MsgBox "C-klasse" Sak 56 til 80 MsgBox "B-klasse" Sak 81 til 100 MsgBox "A klasse" Sak annet MsgBox "utenfor rekkevidde" Slutt Velg slutt Under

Resultat:

'Til' nøkkelord er nyttig for å definere settet med testuttrykk i et område. Det er nyttig å finne karakteren en student oppnår ved å sammenligne de forskjellige sakene. Etter å ha kjørt programmet, må vi angi verdien for å få resultatet.

Utgangen vises med en meldingsboks som vist i skjermbildet ovenfor.

Eksempel 3 - Bruk av 'Is' nøkkelord med Select Case

Dette eksemplet viser bruken av 'Is' nøkkelord i det valgte tilfellet.

Kode:

 Sub CheckNumber () Dim NumInput As Ingerger NumInput = InputBox ("Vennligst skriv inn et nummer") Velg Case NumInput Case Is = 200 MsgBox "Du skrev inn et tall større enn eller lik 200" End Select End Sub 

'Is' nøkkelord hjelper deg med å finne samsvarende verdier med bare saksuttalelser. Den sammenligner testuttrykk med gitt input for å produsere output.

Utdataene oppnås som vist i figuren hvis den angitte verdien er mer enn 200

Eksempel 4 - Med kommandoknapp for å endre verdiene

Velg tilfelle brukes også med Kommando-knappen ved å lage en makro.

Kode:

 Sub color() Dim color As String color = Range("A1").Value Select Case color Case "Red", "Green", "Yellow" Range("B1").Value = 1 Case "White", "Black", "Brown" Range("B1").Value = 2 Case "Blue", "Sky Blue" Range("B1").Value = 3 Case Else Range("B1").Value = 4 End Select End Sub 

As shown in the program, the input is taken from the cells of the worksheet. The program is executed after clicking on the command button used from ActiveX controls. In this, a comma separator is used to combine the test expressions.

When the value in the Cell A1 changed, it results in a change in the B1 cell also by running the excel macro through the command button. You can refer to the screenshot given below:-

Example #5 – Check a Number Odd or Even

This example to help to check a number is even or odd.

Code:

 Sub CheckOddEven() CheckValue = InputBox("Enter the Number") Select Case (CheckValue Mod 2) = 0 Case True MsgBox "The number is even" Case False MsgBox "The number is odd" End Select End Sub 

The coding is developed as shown in the screenshot and output is displayed as follows when even number is entered.

Example #6 – Nested Select Case Statements

Nesting is a useful feature of the select case and the way how it is done is shown.

Code:

 Sub TestWeekday() Select 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 

Here the select case is defined inside another select case to test a day, weekday, or weekend. Except case 1 and 7 remaining all are weekdays (Note: case 1 is Sunday and case 7 is Saturday)

Things to Remember

  • The ‘Is’ keyword using in the statement of [case] and [case else] are not equal.
  • ActiveX control should be used in executing program through a command button taking input and displaying output in the excel sheet range of cells.
  • It is hard to run the programs in VBA if macros are disabled and always enable Macros to get best results.
  • VBA is a case sensitive and input should be entered accurately to get better results.