Оператор Select Case, выполняющий одну или более групп операторов VBA Excel в зависимости от значения управляющего выражения. Синтаксис, компоненты, примеры.
Оператор Select Case используется в VBA Excel для управления отдельными блоками операторов в зависимости от значения управляющего выражения (переменной) и сравнительных условий, задаваемых ключевым словом Case.
Синтаксис оператора Select Case
Select Case выражение Case условие 1 [операторы 1] Case условие 2 [операторы 2] ——————————— Case условие n [операторы n] Case Else [операторы] End Select |
Компоненты оператора Select Case
- выражение – любое числовое или строковое выражение, переменная;
- условие – диапазон значений или выражение с операторами сравнения и ключевым словом Is*;
- операторы – блок операторов VBA Excel, который выполняется при вхождении значения управляющего выражения в диапазон, заданный в условии, или при возврате выражением с операторами сравнения значения True;
- блок операторов после ключевой фразы Case Else** выполняется в том случае, если в предыдущих условиях Case не будет найдено совпадений со значением управляющего выражения (переменной).
* Редактор VBA Excel автоматически добавляет ключевое слово Is в условия с операторами сравнения.
** Компонент Case Else с соответствующим блоком операторов необязательны, но рекомендуется их использовать для обработки непредвиденных значений управляющего выражения (переменной).
Примеры использования в VBA Excel
Пример 1
Пример использования оператора Select Case с операторами сравнения в условиях:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Sub primer1() Dim a As Integer, b As String a = InputBox(«Введите число от 1 до 5», «Пример 1», 1) Select Case a Case Is = 1 b = «один» Case Is = 2 b = «два» Case Is = 3 b = «три» Case Is = 4 b = «четыре» Case Is = 5 b = «пять» Case Else b = «Число не входит в диапазон от 1 до 5» End Select MsgBox b End Sub |
Этот пример аналогичен первому примеру из статьи VBA Excel. Функция Choose, с помощью которой и следует решать подобные задачи в VBA Excel.
Пример 2
Пример использования оператора Select Case с заданным диапазоном в условиях:
Sub primer2() Dim a As Integer, b As String a = InputBox(«Введите число от 1 до 30», «Пример 2», 1) Select Case a Case 1 To 10 b = «Число « & a & » входит в первую десятку» Case 11 To 20 b = «Число « & a & » входит во вторую десятку» Case 21 To 30 b = «Число « & a & » входит в третью десятку» Case Else b = «число « & a & » не входит в первые три десятки» End Select MsgBox b End Sub |
Для решения подобной задачи в VBA Excel можно использовать многострочную конструкцию оператора If…Then…Else, но решение с Select Case выглядит изящней.
Excel VBA Switch Case
In VBA Switch Case, when we need to logically check or analyze a condition and execute the different lines of codes based on the same, we use IF-Else conditional statement. Similarly, there is one more statement Switch Case which is more widely known as Select Case statement which can check or analyze the multiple logical conditions and execute the code lines based on those. When you have three or more logical conditions to check, it is recommended that you use Select Case or Switch Case instead of a conventional IF-Else statement. Because it makes the VBA Code faster and more understandable instead of nested IF-Else statements in such cases.
Switch Case / Select Case
Switch Case or Select Case in VBA works on similar lines as of IF-Else statements. It checks the multiple logical/conditional expressions against different values (cases). As soon as any of the case is matching the condition (becomes true for the given condition), the system executes that case and rest other cases are ignored to execute. In case, there are two cases that are true for the given condition, only the first one will be executed with the law of precedence.
Syntax for Switch Case/Select Case is as below:
Select Case <Expression to check>
Case value_1
Code to Execute when Expression = value_1
Case value_2
Code to Execute when Expression = value_2
Case value_3
Code to Execute when Expression = value_3
.
.
.
Case value_n
Code to Execute when Expression = value_n
Case Else
Code to Execute when no case value meets the expression/logical test.
End Select
Where,
Expression: This is an expression for which we wanted to check or analyze using different case values.
value_1, value_2, value_3, … are the logical conditions that are needed to be checked for the given expression.
How to Use the Switch Case Statement in Excel VBA?
We will learn how to use the Switch Case statement in Excel by using the VBA Code.
You can download this VBA Switch Case Excel Template here – VBA Switch Case Excel Template
VBA Switch Case – Example #1
We will check whether the given number is less than 100 or more than 100. For this, follow the steps below:
Step 1: Insert a new module inside Visual Basic Editor (VBE). Click on Insert tab > select Module.
Step 2: Define a new subprocedure within the inserted module that can hold your macro.
Code:
Sub switch_case_example1() End Sub
Step 3: Define a new variable named usrInpt which can hold the user value. Make use of the VBA InputBox function to create an input box that takes user values through variable usrInpt.
Code:
Sub switch_case_example1() Dim usrInpt As Integer usrInpt = InputBox("Please enter your value") End Sub
Step 4: Use the Select Case statement and supply the value provided by the user through variable usrInpt. This is the expression we need to check with logical conditions.
Code:
Sub switch_case_example1() Dim usrInpt As Integer usrInpt = InputBox("Please enter your value") Select Case usrInpt End Sub
Step 5: Enter the first logical test to be checked under the Case statement as follows.
Code:
Sub switch_case_example1() Dim usrInpt As Integer usrInpt = InputBox("Please enter your value") Select Case usrInpt Case Is < 100 End Sub
Step 6: Use MsgBox function to add an output message if Case Is < 100 is true.
Code:
Sub switch_case_example1() Dim usrInpt As Integer usrInpt = InputBox("Please enter your value") Select Case usrInpt Case Is < 100 MsgBox "The provided number is less than 100" End Sub
Step 7: Now, we need to provide an executable statement when the value for usrInpt is greater than 100. Add a Case and MsgBox to achieve this.
Code:
Sub switch_case_example1() Dim usrInpt As Integer usrInpt = InputBox("Please enter your value") Select Case usrInpt Case Is < 100 MsgBox "The provided number is less than 100" Case Is > 100 MsgBox "The provided number is greater than 100" End Sub
Step 8: What if the value provided by the user is exactly the 100? We have no case added for that. Let’s add the one that gives the user a message that the value he entered is 100.
Code:
Sub switch_case_example1() Dim usrInpt As Integer usrInpt = InputBox("Please enter your value") Select Case usrInpt Case Is < 100 MsgBox "The provided number is less than 100" Case Is > 100 MsgBox "The provided number is greater than 100" Case Is = 100 MsgBox "The provided number is 100" End Sub
Step 9: We need to end the Select Case statement. Use End Select to end the loop created.
Code:
Sub switch_case_example1() Dim usrInpt As Integer usrInpt = InputBox("Please enter your value") Select Case usrInpt Case Is < 100 MsgBox "The provided number is less than 100" Case Is > 100 MsgBox "The provided number is greater than 100" Case Is = 100 MsgBox "The provided number is 100" End Select End Sub
Step 10: Now, run this code by hitting the Run button or F5. A new popup box will appear asking for the value to be checked. I will enter a value as 110 and hit the OK button on the input box. Since the number I enter is greater than 100, as soon as I click on OK, a new message will pop-up on my screen saying, “The provided number is greater than 100”.
VBA Switch Case – Example #2
Suppose we want to capture the grade of students based on their marks. See the steps below on how we can achieve this.
Step 1: Define a new sub-procedure named switch_case_example2.
Code:
Sub switch_case_example2() End Sub
Step 2: Define two new variables – marks as integer and grades as a string using Dim statement in the sub-procedure created.
Code:
Sub switch_case_example2() Dim marks As Integer Dim grades As String End Sub
Step 3: Use the VBA InputBox function through which the user can input the value for the variable marks.
Code:
Sub switch_case_example2() Dim marks As Integer Dim grades As String marks = InputBox("Please enter the marks") End Sub
Step 4: Use the Select Case statement and supply the variable marks as an expression to be checked.
Code:
Sub switch_case_example2() Dim marks As Integer Dim grades As String marks = InputBox("Please enter the marks") Select Case marks End Sub
Since we want to assign the grades to students based on the marks they input, we need to define the grades first.
Step 5: Use the case statement to check whether the marks are less than 35. If so, assign value as “F” to variable grades.
Code:
Sub switch_case_example2() Dim marks As Integer Dim grades As String marks = InputBox("Please enter the marks") Select Case marks Case Is < 35 grades = "F" End Sub
Step 6: If the marks are between 35 to 45, assign value as “D” to variable grades.
Code:
Sub switch_case_example2() Dim marks As Integer Dim grades As String marks = InputBox("Please enter the marks") Select Case marks Case Is < 35 grades = "F" Case 35 To 45 grades = "D" End Sub
Step 7: If the marks inputted are between 46 to 55, value “C” should get assigned to variable grades.
Code:
Sub switch_case_example2() Dim marks As Integer Dim grades As String marks = InputBox("Please enter the marks") Select Case marks Case Is < 35 grades = "F" Case 35 To 45 grades = "D" Case 46 To 55 grades = "C" End Sub
Step 8: When the marks are in range 56 to 65, the value assigned to variable grades should be “B”.
Code:
Sub switch_case_example2() Dim marks As Integer Dim grades As String marks = InputBox("Please enter the marks") Select Case marks Case Is < 35 grades = "F" Case 35 To 45 grades = "D" Case 46 To 55 grades = "C" Case 56 To 65 grades = "B" End Sub
Step 9: For marks between 66 to 75, the grade should be “A”.
Code:
Sub switch_case_example2() Dim marks As Integer Dim grades As String marks = InputBox("Please enter the marks") Select Case marks Case Is < 35 grades = "F" Case 35 To 45 grades = "D" Case 46 To 55 grades = "C" Case 56 To 65 grades = "B" Case 66 To 75 grades = "A" End Sub
Step 10: If the marks inputted are more than 75, grades variable should be assigned a value as “A+”
Code:
Sub switch_case_example2() Dim marks As Integer Dim grades As String marks = InputBox("Please enter the marks") Select Case marks Case Is < 35 grades = "F" Case 35 To 45 grades = "D" Case 46 To 55 grades = "C" Case 56 To 65 grades = "B" Case 66 To 75 grades = "A" Case Is > 75 grades = "A+" End Sub
Step 11: Use End Select the close the Select Case loop.
Code:
Sub switch_case_example2() Dim marks As Integer Dim grades As String marks = InputBox("Please enter the marks") Select Case marks Case Is < 35 grades = "F" Case 35 To 45 grades = "D" Case 46 To 55 grades = "C" Case 56 To 65 grades = "B" Case 66 To 75 grades = "A" Case Is > 75 grades = "A+" End Select End Sub
Step 12: Now, we need to check what is the grade associated with the marks a student has inputted. In order to achieve that, use MsgBox function in such a way that it denotes the achieved grades inside a message box.
Code:
Sub switch_case_example2() Dim marks As Integer Dim grades As String marks = InputBox("Please enter the marks") Select Case marks Case Is < 35 grades = "F" Case 35 To 45 grades = "D" Case 46 To 55 grades = "C" Case 56 To 65 grades = "B" Case 66 To 75 grades = "A" Case Is > 75 grades = "A+" End Select MsgBox "Grade achieved is: " & grades End Sub
Step 13: Run this code by hitting the F5 or Run button and you can see a VBA input box asking for a mark value. I will enter the marks as 72 and hit the OK button present on the input box. As soon as I hit the OK button inside the input box, I will get a message box indicating the grades associated with the marks entered.
This is how we can use the Switch/Select Case statement inside VBA.
Things to Remember
- Switch case is actually a synonym for Select Case statement in VBA. It has been called so because with the help of this statement we can switch between the different outputs at the same time.
- This statement can be used as an alternative to the IF-Else loop whenever we have three or more conditions to check.
- It is OK if you don’t use ELSE Case in Select Case statement. However, in that case, you need to make sure that at least one condition is true throughout the loop.
Recommended Articles
This is a guide to VBA Switch Case. Here we discuss How to Use the Switch Case Statement in Excel VBA along with practical examples and downloadable excel template. You can also go through our other suggested articles –
- VBA IF Statements
- VBA Sort
- VBA While Loop
- VBA Environ
Switch Case or Select Case is a statement available in VBA to conduct logical tests where it works as an alternative to the IF-THEN statement in VBA. Using a Switch Case, we can conduct multiple logical tests and arrive at results based on multiple results.
Table of contents
- Excel VBA Switch Case
- How to Use VBA Switch Case Statement?
- Example #1
- Example #2
- Example #3
- Things to Remember
- Recommended Articles
- How to Use VBA Switch Case Statement?
Below is the syntax of the Switch Case/Select Case statement.
Code:
Select Case < Logical Test > Case 1 < Logical Test > Value if Case 1 Test is TRUE Case 2 < Logical Test > Value if Case 2 Test is TRUE Case 3 < Logical Test > Value if Case 3 Test is TRUE Case Else Value if none of the above cases are TRUE End Select
< Logical Test >: What is the logical test? We need to enter the test here.
Case 1, Case 2: We need to test multiple logical tests in excelA logical test in Excel results in an analytical output, either true or false. The equals to operator, “=,” is the most commonly used logical test.read more in each case.
How to Use VBA Switch Case Statement?
You can download this VBA Switch Case Excel Template here – VBA Switch Case Excel Template
Example #1
In cell A1 we have entered the value as 550.
We will test this number using switch case statements and arrive at a “More than 500” status if the value exceeds 500. Else, we will arrive at the status of “Less than 500.”
Open the VBA Sub procedureSUB in VBA is a procedure which contains all the code which automatically gives the statement of end sub and the middle portion is used for coding. Sub statement can be both public and private and the name of the subprocedure is mandatory in VBA.read more first.
Code:
Sub Switch_Case() End Sub
Open Select Case Statement in VBAVBA Case Statement is a function that assists the users to execute multiple logical tests and arrive at results in two ways, i.e. first, if the result or logical test is TRUE and second, if the result or logical test is FALSE.read more and supply the logical test Range(“A2”).Value
Code:
Sub Switch_Case() Select CaseA select case is a substitute for writing down multiple IF statements in VBA. In the case of many IF statements, it becomes tedious and more complex, but in select case statements, we define the criteria as different cases and results.read more Range("A2").Value End Sub
Now, enter the first case as the Case is >500.
Code:
Sub Switch_Case() Select CaseA select case is a substitute for writing down multiple IF statements in VBA. In the case of many IF statements, it becomes tedious and more complex, but in select case statements, we define the criteria as different cases and results.read more Range("A2").Value Case Is > 500 End Sub
If this case is TRUE, what is the result we need in cell B2? i.e., “More Than 500.”
Code:
Sub Switch_Case() Select Case Range("A2").Value Case Is > 500 Range("B2").Value = "More than 500" End Sub
We left with only one result, i.e., Case Else statement. Therefore, if the first Case is FALSE, we need the result as “Less than 500.”
Code:
Sub Switch_Case() Select Case Range("A2").Value Case Is > 500 Range("B2").Value = "More than 500" Case Else Range("B2").Value = "Less than 500" End Sub
Now, close the statement by using the “End Select” statement.
Code:
Sub Switch_Case() Select Case Range("A2").Value Case Is > 500 Range("B2").Value = "More than 500" Case Else Range("B2").Value = "Less than 500" End Select End Sub
Run the code. We will get the value in cell B2.
Since the value in cell A2 is greater than 500, we got the result of “More than 500.”
Example #2
Now, we will see using more case examples. Below is the score of the student in the examination.
With this score, we need to arrive at a grade. For that, below is the criteria.
- Score >=85, Grade = “Dist”
- Score >=60, Grade = “First”
- Score >=50, Grade = “Second”
- Score >=35, Grade = “Pass”
- If anything else Grade = “Fail.”
Code:
Sub Switch_Case1()
Dim Score As Integer Score = 65 Select Case Score Case Is >= 85 MsgBox "Dist" Case Is >= 60 MsgBox "First" Case Is >= 50 MsgBox "Second" Case Is >= 35 MsgBox "Pass" Case Else MsgBox "Fail" End Select End Sub
Run this code. We will get the grade in the message box.
Since the score is more than 60 but less than 85 grade is “First.”
Example #3
We have seen how to find a grade for one student. What about finding a grade for more than one student? Below are the scores of the students.
Since more than one student is involved, we need to enclose FOR NEXT loop in VBAAll programming languages make use of the VBA For Next loop. After the FOR statement, there is a criterion in this loop, and the code loops until the criteria are reached. read more. Below is the VBA codeVBA code refers to a set of instructions written by the user in the Visual Basic Applications programming language on a Visual Basic Editor (VBE) to perform a specific task.read more.
Code:
Sub Switch_Case2() Dim k As Integer For k = 2 To 7 Select Case Cells(k, 2).Value Case Is >= 85 Cells(k, 3).Value = "Dist" Case Is >= 60 Cells(k, 3).Value = "First" Case Is >= 50 Cells(k, 3).Value = "Second" Case Is >= 35 Cells(k, 3).Value = "Pass" Case Else Cells(k, 3).Value = "Fail" End Select Next k End Sub
Run this code. We will get grades.
Things to Remember
- Often, Switch Case refers to as “Select Case.”
- The switch is a functionSwitch function in excel is a comparison and referencing function which compares and matches a referred cell to a group of cells and returns the result based on the first match found. The method to use this function is =SWITCH( target cell, value 1, result 1….).read more, not a statement.
- If no logical tests are TRUE, you can pass the alternative result in the CASE ELSE statement and always close the statement with the “END SELECT” word.
Recommended Articles
This article is a guide to VBA Switch Case. Here, we discuss switching-case statements in Excel VBA, examples, and downloadable Excel templates. Below are some useful articles related to VBA: –
- Case Statement in Excel VBA
- VBA UCase
- Index Match in VBA
- IF OR in VBA
The Select Case statement is an alternative way to write If/ElseIf statements.
You will find a Select Case statement equivalent in most popular programming languages. In many languages, the equivalent statement is the Switch statement. For example, the languages Java, C#, C++ and Javascript all have a switch statement.
Case Statement Quick Guide
Case Options | Description | Examples |
---|---|---|
Is | Use with operators =, >,<,<>,>=,<= | Case Is = 5 Case Is = «Apple» Case Is > 5 Case Is <= 10 |
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 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 Select End 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 If End 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.
Using the Colon Operator
We can use the colon symbol “:” to make our Case statements look neater. The colon symbol allows us to place two lines VBA lines of code on one line. They are still treated as two lines by VBA but the code looks neater:
Select Case airportCode Case "LHR": Debug.Print "London Heathrow" Case "JFK": Debug.Print "John F Kennedy" Case "SIN": Debug.Print "Singapore" End Select
Code Between Case Statements
In the previous examples we had just one line of code for each Case Condition. You can have as many lines of code as you want. However it is good practice to keep it to one line if possible. The purpose of the Select Case statement is to make the code readable.
In the following example, we have multiple lines of code for the Case “London”:
' https://excelmacromastery.com/ Sub MultiLine() Dim city As String city = Sheet1.Range("A1").Value Select Case city Case "London" ' would be better in another sub Count = Count + 1 x = 6 a = 5 Case Else Debug.Print "other city" End Select End Sub
If we have multiple lines, we could place them in a sub and then call this sub:
Select Case city Case "London" Call UpdateValues Case Else Debug.Print "other city" End Select
Case Else
The Case Else statement is used with Select Case. It is the equivalent of the Else statement used with If. In simple terms, it means “if no other options were selected then select this one”.
Case Else is often used to check that a valid value was supplied. In the example below, it is used to check if the Airport Code was valid:
' https://excelmacromastery.com/ Public Sub Select_Case_Else() ' 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" Case Else MsgBox "The airport code is not valid.", vbInformation End Select End Sub
Using Select Case with Numbers
We can use the To keyword to specify a range of numbers:
' https://excelmacromastery.com/ Select Case marks Case 85 To 100 Debug.Print "High Distinction" Case 75 To 84 Debug.Print "Distinction" Case 55 To 74 Debug.Print "Credit" Case 40 To 54 Debug.Print "Pass" Case Else Debug.Print "Fail" End Select
Select Case Is
We can use the Is keyword if we want to use the operators like =, >,< etc.
In the below example, I have rewritten the previous Select Case statement using Is instead of To:
' https://excelmacromastery.com/ Select Case marks Case Is >= 85 Debug.Print "High Distinction" Case Is >= 75 Debug.Print "Distinction" Case Is >= 55 Debug.Print "Credit" Case Is >= 40 Debug.Print "Pass" Case Else ' For all other marks Debug.Print "Fail" End Select
We don’t need to use the Is keyword when using equals. The two lines below are equivalent:
Case "LHR" Case Is = "LHR"
So are these two:
Case 10 Case Is = 10
Select Case Multiple Values
We can have multiple case conditions on one line. We simply use the comma to separate them:
Case Is > 85, 70 To 75, 83
Case 2, 4, 6, 8 Debug.Print "Even numbers" Case 1, 3, 5, 7 Debug.Print "Odd numbers"
The following is an example of using multiple strings:
' https://excelmacromastery.com/ Public Sub Select_Case_Multi() Dim city As String ' Change value to test city = "Dublin" ' Print the name of the airport based on the code Select Case city Case "Paris", "London", "Dublin" Debug.Print "Europe" Case "Singapore", "Hanoi" Debug.Print "Asia" Case Else MsgBox "The city is not valid.", vbInformation End Select End Sub
Comparing Upper and Lower Case
We can use Option Compare at the top of the VBA module. This affects how strings are compared within that module.
We can use Binary or Text with Option Compare.
Option Compare Binary
Option Compare Text
- Binary means that VBA checks the case of the letters – case sensitive.
- Text means that VBA ignores the case of the letters – not case sensitive.
If we set “Option Compare Binary” then the following If and Case statements will evaluate to false.
If we set “Option Compare Text” they will evaluate to true:
city = "Dublin" ' true for "Option Compare Text" ' false for "Option Compare binary" If city = "DUBLIN" Then End If Select Case city ' true for "Option Compare Text" ' false for "Option Compare binary" Case "DUBLIN" End Select
You can try the following example. Change between Binary and Text and check the results:
' Change between "Binary" and "Text" and compare results ' https://excelmacromastery.com/ Option Compare Binary Private Sub Select_Case_Multi() Dim city As String city = "dublin" ' Print the name of the airport based on the code to the ' Immediate Window (Ctrl + G). Select Case city Case "DUBLIN" Debug.Print "Europe" Case Else Debug.Print "The city is not valid." End Select End Sub
Related Articles
VBA If Statement
VBA MessageBox
What’s Next?
Free VBA Tutorial If you are new to VBA or you want to sharpen your existing VBA skills then why not try out the The Ultimate VBA Tutorial.
Related Training: Get full access to the Excel VBA training webinars and all the tutorials.
(NOTE: Planning to build or manage a VBA Application? Learn how to build 10 Excel VBA applications from scratch.)
Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article
We can use Select case instead of using multiple if then statements in Excel VBA. In the below example user will enter the student mark in “Cell C5” as an input. Macro read C5 cell value and fill grade in “Cell D5”.
Grade:
- <35 – Fail
- 35-60 – Grade C
- 60-80 – Grade B
- >=80 – Grade A
VBA Code read cell C5 value, use select case statement (apply criteria) and fill grade of a student.
Declaring Variables:
Variable | Data Type | Comments |
---|---|---|
mark | Integer | read cell C5 Value |
result | String | write in cell D5 |
'variable declaration Dim mark As Integer, result As String
Initialize variable
'initialize variable mark = Range("C5").Value
Select case… – check the mark variable and assign a respective grade to the variable result
'select case statement to check mark and execute case statement Select Case mark Case Is >= 80 result = "Grade A" Case Is >= 60 result = "Grade B" Case Is >= 35 result = "Grade C" Case Else result = "FAIL" End Select
Write the Grade to cell D5
Range("D5").Value = result
Step 1: Just create a template like below
Step 2: Add a shape “Update Grade”
Step 3: Right-click on “Update Grade” and “Assign Macro..”
Step 4: Select “updateGrade”, you can see a list of available macros in your workbook
Step 5: Save your excel file as “Excel Macro-Enabled Workbook” *.xlsm
Step 6: Click “Update Grade” to execute the VBA code and see the output in cell D5
Outputs:
Like Article
Save Article