目录:
视频: 【Excel实用技术】excel制作动态更新下拉菜单,用这个公式一分钟搞定! 2024
Select Case结构是一个有用的VBA结构,用于涉及三个或更多Excel 2016中的选项(尽管它也有两个选项,提供If-Then-Else结构的替代方案)。
选择案例示例
以下示例显示如何使用选择案例结构:
Sub ShowDiscount3()Dim Quantity As Long Dim Double Discount Double Double = InputBox(“Enter Quantity:”)情况0到24折扣= 0. 1情况25到49折扣= 0. 15情况50到74折扣= 0. 2情况是> = 75折扣= 0. 25结束选择MsgBox“Discount:”&Discount End Sub >在这个例子中,Quantity变量正在被评估。例行检查四种不同情况(0-24,25-49,50-74和75或更大)。
<! --1 - >
每个Case语句后面可以有任意数量的语句,如果大小写为真,它们都会被执行。如果仅使用一个语句(如本例中那样),则可以将语句放在与Case关键字相同的行上,前面是冒号 - VBA语句分隔符。这使代码更紧凑,更清晰。下面是这种格式的例程:Sub ShowDiscount4()Dim Quantity As Long Dim Double Discount Double Quantity = InputBox(“Enter Quantity:”)Select Case Quantity Case 0 to 24:Discount = 0 1 Case 25 To 49:Discount = 0. 15 Case 50 To 74:Discount = 0. 2 Case => 75:Discount = 0. 25 End Select MsgBox“Discount:”&Discount End Sub
一旦VBA发现一个真实的案例并且执行该案件的陈述,结构就会退出。
如下例所示,可以嵌套Select Case结构。此例程检查活动单元格,并显示描述单元格内容的消息。注意该过程有三个Select Case结构,并且每个都有自己的End Select语句:
Sub CheckCell()Dim Msg As String Select Case IsEmpty(ActiveCell)Case True Msg =“is blank。 “Case Else Select Case ActiveCell。 HasFormula Case True Msg =“has a formula”Case Else Select Case IsNumeric(ActiveCell)Case True Msg =“has a number”Case Else Msg =“has text”End Select End Select End Select MsgBox“Cell”&ActiveCell。地址&“”&消息结束小组
逻辑是这样的:
-
如果不是空的,看它是否包含公式。
-
如果没有公式,请确定它是否包含数值或文本。
-
例程结束时,Msg变量包含描述单元格内容的字符串。 MsgBox函数显示该消息。
由CheckCell过程显示的消息。
可以根据需要嵌套Select Case结构,但要确保每个Select Case语句都有相应的End Select语句。如果您仍然不相信缩进代码是值得的,那么之前的列表就是一个很好的例子。缩进确实使嵌套层次清晰。看看没有任何缩进相同的过程:
Sub CheckCell()Dim Msg As String Select Case IsEmpty(ActiveCell)Case True Msg =“is blank。 “Case Else Select Case ActiveCell。 HasFormula Case True Msg =“has a formula”Case Else Select Case IsNumeric(ActiveCell)Case True Msg =“has a number”Case Else Msg =“has text”End Select End Select End Select MsgBox“Cell”&ActiveCell。地址&“”&Msg End Sub
相当难以理解,呃?