如何在VBA中使用Select Case Statement? (例子)
Excel VBA Select案例声明
选择案例 替代了在VBA中写下多个if语句,当我们在代码中有很多条件时,我们可能必须使用多个If语句,并且在选择情况下,当提供更多的If语句时,它变得越来越复杂,因此这可能很繁琐声明中,我们将标准定义为不同的情况和结果。
SELECT CASE在决策过程中提供帮助。在这种情况下,仅使用一种表达方式来评估不同的可能情况。轻松分析多个条件以执行开发的代码。此case语句用作ELSE IF的替代语句,以评估表达式。它被归类为Excel中内置的逻辑函数。要使用此功能,可通过开发人员标签下显示的Visual Basic编辑器输入代码。
解释
选择案例中使用了各种语句组。为了有效地使用此语法,应遵循以下语法。它类似于其他编程语言(例如Java,C#和PHP)中显示的switch语句。
选择[Case]表达式以测试[Case]表达式语句列表(案例1,案例2,案例3等等...)案例其他(Else语句)结束选择
与选择情况相关的术语的解释如下:
用于测试的表达式: 需要评估不同类型的数据,例如整数,字符串,布尔值,对象和字符。
表达式列表: 使用大小写来创建表达式,以查找输入内容的精确匹配。如果有两个以上的表达式,则使用逗号运算符将它们分隔开。 “ is”是用于在Excel中使用逻辑运算符(例如= 、、 =)比较两个表达式的关键字。
- 结束选择: 关闭构造函数选择案例定义
- 声明: 使用案例开发语句,以运行表达式,对表达式进行评估以分析是否存在任何匹配的语句
- 其他声明: 当测试表达式与任何case语句都不匹配时,将测试else语句。
如何使用VBA Select Case Statement?
VBA提供的选择案例功能无法在正常工作表中运行。我们需要使用“开发人员”选项卡下的“ Visual Basic”选项。在开发人员模式下创建的用户定义功能和编码,以运行业务领域中的各种小型应用程序。
它用于excel中嵌套if语句的情况。这是处理各种案例陈述的最佳选择。要有效使用此选项,应执行以下任务
- 首先,需要通过在Excel工作表中放置命令按钮控件来创建宏。
- 之后,右键单击命令按钮,然后选择查看代码选项
- 将代码放在命令按钮功能和结束子之间
- 调试代码以识别任何语法错误。
- 编译代码以查找编译错误以成功执行程序
- 更改输入值以根据匹配条件观察不同的结果
例子1 –简单的选择案例陈述
此示例旨在了解简单的选择情况以查找匹配的值。
代码:
私有子Selcaseexmample()昏暗A作为整数A = 20选择个案A个案10 MsgBox“第一个个案匹配!”案例20 MsgBox“第二个案例是匹配的!”案例30 MsgBox“在选择案例中匹配了第三案例!”案例40 MsgBox“在选择案例中匹配了第四个案例!” Case Else MsgBox“没有匹配的案例!”结束选择结束子
结果:
四个case语句和case else语句用于比较不同情况下的测试表达式。在本示例中,第二种情况被匹配,因为变量A与20匹配。
Example#2 –“ To”关键字来测试成绩
此示例说明了选择情况下'To'关键字的用法。
代码:
Private Sub Selcasetoexample()将学生标记作为整数学生标记= InputBox(“输入1到100之间的标记?”)选择大小写学生标记情况1到36 MsgBox“失败!”案例37至55 MsgBox“ C级”案例56至80 MsgBox“ B级”案例81至100 MsgBox“ A级”案例其他MsgBox“超出范围”结束选择结束小组
结果:
“ To”关键字有助于定义范围内的一组测试表达式。通过比较不同的案例,有助于查找学生获得的成绩。运行该程序后,我们必须输入值以获取结果。
输出将显示一个消息框,如上面的屏幕截图所示。
Example#3 –在选择大小写的情况下使用“ Is”关键字
此示例说明了选择情况下'Is'关键字的用法。
代码:
Sub CheckNumber()Dim NumInput As Integer NumInput = InputBox(“请输入数字”)选择大小写NumInput大小写为= 200 MsgBox“您输入的数字大于或等于200”结束选择结束子
“ is”关键字有助于仅使用case语句查找匹配的值。它将测试表达式与给定的输入进行比较以产生输出。
如果输入的值大于200,则获得如图所示的输出
Example#4 –使用命令按钮更改值
通过创建宏,选择案例还可以与“命令”按钮一起使用。
代码:
Sub color()暗色作为字符串color = Range(“ A1”)。Value选择案例颜色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
如程序所示,输入来自工作表的单元格。单击ActiveX控件中使用的命令按钮后,将执行该程序。在此,使用逗号分隔符组合测试表达式。
当单元格A1中的值更改时,也可以通过通过命令按钮运行excel宏来导致B1单元格中的更改。您可以参考以下屏幕截图:
Example#5 –检查一个数字是奇数还是偶数
这个例子帮助检查一个数字是偶数还是奇数。
代码:
子CheckOddEven()CheckValue = InputBox(“输入数字”)选择大小写(CheckValue Mod 2)= 0大小写True MsgBox“数字为偶数” Case False MsgBox“数字为奇数”结束选择结束子
如屏幕截图所示开发编码,当输入偶数时,输出显示如下。
Example#6 –嵌套的Select Case语句
嵌套是select案例的一个有用功能,并显示了完成方式。
代码:
子TestWeekday()选择案例工作日(现在)案例1,7选择案例工作日(现在)案例1 MsgBox“今天是星期日” Case Else MsgBox“今天是星期六”结束选择Case Else MsgBox“今天是工作日”结束选择结束子
在这里,选择案例在另一个选择案例中定义,以测试一天,工作日或周末。剩下的案例1和7都是工作日(注意:案例1是星期日,案例7是星期六)
要记住的事情
- [case]和[case else]语句中使用的“ Is”关键字不相等。
- ActiveX控件应在通过命令按钮执行程序时使用,该命令按钮在单元格的excel工作表范围内进行输入并显示输出。
- 如果禁用了宏,并且始终启用宏以获得最佳结果,则很难在VBA中运行程序。
- VBA区分大小写,应准确输入输入以获得更好的结果。