How to Use the Select Case Structure in Excel VBA – ExcelDemy

In this VB.Net tutorial, we will learn What is Select Case Statement in VB.Net, Select Case Syntax, & Program Examples of Select Case Statement.

Описание оператора Select Case

Оператор Select Case используется в VBA Excel для управления отдельными блоками операторов в зависимости от значения управляющего выражения (переменной) и сравнительных условий, задаваемых ключевым словом Case.

Синтаксис оператора Select Case

SelectCaseвыражение

    Caseусловие1

        [операторы1]

    Caseусловие2

        [операторы2]

    Caseусловиеn

        [операторыn]

    CaseElse

        [операторы]

EndSelect

Компоненты оператора Select Case

  • выражение – любое числовое или строковое выражение, переменная;
  • условие – диапазон значений или выражение с операторами сравнения и ключевым словом Is*;
  • операторы – блок операторов VBA Excel, который выполняется при вхождении значения управляющего выражения в диапазон, заданный в условии, или при возврате выражением с операторами сравнения значения True;
  • блок операторов после ключевой фразы Case Else** выполняется в том случае, если в предыдущих условиях Case не будет найдено совпадений со значением управляющего выражения (переменной).

* Редактор VBA Excel автоматически добавляет ключевое слово Is в условия с операторами сравнения.
** Компонент Case Else с соответствующим блоком операторов необязательны, но рекомендуется их использовать для обработки непредвиденных значений управляющего выражения (переменной).

Синтаксис

Select [ Case ] testexpression [ Case expressionlist [ statements ] ] [ Case Else [ elsestatements ] ] End Select

Case Statement Quick Guide

Case Options Description Examples
Is Use with operators =, >,,>=, Case Is = 5
Case Is = “Apple”
Case Is > 5
Case Is
To Use for a range of numbers Case 5 To 10
Case 85 To 99
Case “A” To “D”
Comma Use the comma to include multiple conditions for one case Case 1, 3, 9, 11
Case 1, Is > 20, 10 To 15
No operator The same as “Is =” Case 5
Case “Apple”

Select Case Example

This example prompts the user with a YesNoCancel MessageBox and tests which option the user selected:

SubSelect_Case_Yes_No_Cancel()

    DimnResult AsVbMsgBoxResult

    nResult=MsgBox(“…”,vbYesNoCancel)

    SelectCasenResult

        CasevbYes

            MsgBox“Yes”

        CasevbNo

            MsgBox“No”

        CasevbCancel

            MsgBox“Cancel”

    EndSelect

EndSub

vba select case

Below we’ve written out the equivalent using an If Statement instead. You’ll notice that the Case Select Statement involves slightly less typing – this benefit is amplified when testing multiple criteria.

SubIf_Yes_No_Cancel()

    DimnResult AsVbMsgBoxResult

    nResult=MsgBox(“…”,vbYesNoCancel)

    IfnResult=vbYes Then

        MsgBox“Yes”

    ElseIfnResult=vbNo Then

        MsgBox“No”

    ElseIfnResult=vbCancel Then

        MsgBox“Cancel”

    EndIf

EndSub

Select Case Format

The format of the VBA Select Case statement is a follows:

Select Case [variable] Case [condition 1] [Statement 1] Case [condition 2] [Statement 2] Case [condition n] [Statement n] Case Else [Statement else]End Select

The following is a simple example of using the Select Case Statement:

‘ https://excelmacromastery.com/Public Sub Select_Case_Example() ‘ Read value from cell A1 on sheet1 Dim airportCode As String airportCode = Sheet1.Range(“A1”).Value ‘ Print the name of the airport to the Immediate Window(Ctrl + G) Select Case airportCode Case “LHR” Debug.Print “London Heathrow” Case “JFK” Debug.Print “John F Kennedy” Case “SIN” Debug.Print “Singapore” End SelectEnd Sub

The code below is the equivalent If statement:

‘ https://excelmacromastery.com/Public Sub If_Example() ‘ Read value from cell A1 on sheet1 Dim airportCode As String airportCode = Sheet1.Range(“A1”).Value ‘ Print the name of the airport to the Immediate Window(Ctrl + G) If airportCode = “LHR” Then Debug.Print “London Heathrow” ElseIf airportCode = “JFK” Then Debug.Print “John F Kennedy” ElseIf airportCode = “SIN” Then Debug.Print “Singapore” End IfEnd Sub

We use the Select Case statement because it provides us with more flexibility than an If statement. We will see more above this below.

Summary

This tutorial addressed using the Select Case in Visual Basic, and you learned about the operators you can use, as well as dealing with case sensitivity issues.

См. также

  • Choose
  • Оператор End
  • Оператор If…Then…Else
  • Оператор Option Compare
  • Оператор Exit

VBA If Statement

VBA MessageBox

VBA Select Case in Access

All of the above examples work exactly the same in Access VBA as in Excel VBA.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

SubTestCellValue()

    Dimdbs asDatabase

    Dimrst asRecordSet

    Setdbs=CurrentDB

    Setrst=dbs.OpenRecordset(“tblClients”,dbOpenDynaset)

    Withrst

       .MoveFirst

       .Edit

       SelectCaserst.Fields(“City”)

       Case“Austin”

           .rst.Fields(“TelCode”)=“512”

       Case“Chicago”

           .rst.Fields(“TelCode”)=“312”

       Case“New YorK”

           .rst.Fields(“TelCode”)=“1212”

       Case“San Fransisco”

           .rst.Fields(“TelCode”)=“415”

    EndSelect

    .Update

   EndWith

EndSus

Рейтинг
( 1 оценка, среднее 5 из 5 )
Загрузка ...