添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

If语句里面还可以有If语句,形成If语句嵌套。每个嵌套的If语句必须具有匹配的End If语句。

例5,根据学生的成绩给出评价,在大于90分的判断上面又加了个If判断,形成If语句的嵌套。

Sub Test()
    Dim intA As Integer
    intA = 100
    If intA >= 90 Then
        If intA = 100 Then
            debug.Print "天才"
        Else                     '这个else语句和If intA = 100是一对的
            debug.Print "优秀"
        End If
    ElseIf intA >= 70 Then
        debug.Print "良好"
    ElseIf intA >= 60 Then
        debug.Print "一般"
        debug.Print "差"
    End If
End Sub

以上程序的运行结果如下:

Select Case条件判断语句

Select Case语句在功能与If语句非常相似。执行几组语句之一,具体取决于表达式的值。 有两种形式。

  • 有Else的Select Case条件判断语句
  • 没有Else的Select Case条件判断语句
  • 有Else的Select Case条件判断语句

    格式如下:

    Select Case 测试表达式
        Case 表达式1
            ' 如果测试表达式等于表达式1,则执行这里的语句
        Case 表达式2
            ' 如果测试表达式等于表达式2,则执行这里的语句
        Case 表达式3
            ' 如果测试表达式等于表达式3,则执行这里的语句
        ' 后面可以有更多的Case
        Case else
            ' 前面所有的表达式都不满足时,则执行这里的语句
    End Select

    测试表达式是任何数值表达式或字符串表达式。

    例6,把例4的If……elseIf……形式改成Select Case语句的形式。在“Case 表达式” 中间有个Is。这个是用于表达式判断时候用的格式,这样才能够起到类似于If……elseIf……的作用。

    Sub Test()
        Dim intA As Integer
        intA = 59
        Select Case intA
        Case Is >= 90
            Debug.Print "优秀"
        Case Is >= 70
            Debug.Print "良好"
        Case Is >= 60
            Debug.Print "一般"
        Case Else
            Debug.Print "差"
        End Select
    End Sub

    以上程序的运行结果如下:

    没有Else的Select Case条件判断语句

    格式如下:

    Select Case 测试表达式
        Case 表达式1
            ' 如果测试表达式等于表达式1,则执行这里的语句
        Case 表达式2
            ' 如果测试表达式等于表达式2,则执行这里的语句
        Case 表达式3
            ' 如果测试表达式等于表达式3,则执行这里的语句
        ' 后面可以有更多的Case
    End Select

    例7,intA是59,没有满足条件的Case语句。

    Sub Test()
        Dim intA As Integer
        intA = 59
        Select Case intA
        Case Is >= 90
            Debug.Print "优秀"
        Case Is >= 70
            Debug.Print "良好"
        Case Is >= 60
            Debug.Print "一般"
        End Select
    End Sub

    Case子句中使用多个表达式或范围

    例8,Case语句为数字使用多个表达式和范围。

    Sub Test()
        Dim Number As Integer
        Number = 8
        Select Case Number
        Case 1 To 5     ' 范围1到5
            Debug.Print "Between 1 and 5"
        Case 6, 7, 8    ' 多个表达式。表达式6,表达式7和表达式8
            Debug.Print "Between 6 and 8"
        Case 9 To 10    ' 范围9到10
            Debug.Print "Greater than 8"
        End Select
    End Sub

    以上程序的运行结果如下:

    Between 6 and 8

    例9,Case语句为字符串使用多个表达式和范围。

    Sub Test()
        Dim letter As String
        letter = "E"
        Select Case letter
        Case "A" To "C"    ' 范围A到C
            Debug.Print "Between A and C"
        Case "D", "E"   ' 多个表达式。表达式D和表达式E
            Debug.Print "Between D and E"
        End Select
    End Sub

    以上程序的运行结果如下:

    Between D and E

    Select Case语句的嵌套

    Select Case语句里面还可以有Select Case语句,形成Select Case语句嵌套。每个嵌套的Select Case语句必须具有匹配的End Select语句。

    例10,根据学生的成绩给出评价,在大于90分的判断上面又加了个Select Case判断,形成Select Case语句的嵌套。

    Sub Test()
        Dim intA As Integer
        intA = 100
        Select Case intA
        Case Is >= 90
            Select Case intA
                Case 100
                    Debug.Print "天才"
                Case Else
                    Debug.Print "优秀"
            End Select
        Case Is >= 70
            Debug.Print "良好"
        Case Is >= 60
            Debug.Print "一般"
        Case Else
            Debug.Print "差"
        End Select
    End Sub

    以上程序的运行结果如下:

    If语句和Select Case语句混合使用

    Select Case的嵌套一般用的比较少。上面例10可以将内层的Select Case语句改成If语句,比较容易理解。

    例10,根据学生的成绩给出评价,在大于90分的判断上面又加了个Select Case判断,形成Select Case语句的嵌套。

    Sub Test()
        Dim intA As Integer
        intA = 100
        Select Case intA
        Case Is >= 90
            If intA = 100 Then
                Debug.Print "天才"
                Debug.Print "优秀"
            End If
        Case Is >= 70
            Debug.Print "良好"
        Case Is >= 60
            Debug.Print "一般"
        Case Else
            Debug.Print "差"
        End Select
    End Sub

    参考资料: https://docs.microsoft.com/zh-cn/office/vba/language/reference/user-interface-help/Select-Case-statement

    转载请注明本网址。