本文详细介绍了VisualBasic编程中的三种条件控制结构:If...Then...Else处理单个或多个条件,SelectCase用于快速比较单一值,以及IIf函数实现单行条件判断。通过实例展示了如何在代码中应用这些结构以实现逻辑控制。 摘要由CSDN通过智能技术生成

(1)If...Then...Else 结构

根据要求条件,使用 If...Then...Else 语句运行一个语句或者一个语句块,得到对应的值。

If...Then...Else 语法:

If '条件 Then
    ' 条件为真时执行的代码
    ' 条件为假时执行的代码
End If
Sub xx()
    i = "look"
    If i = "look" Then
        s = 1
        s = 2
    End If
    Debug.Print s
End Sub
#输出结果为1

当有多个条件的情况

如果同时满足两个及以上条件,条件之间可用And连接

If ‘条件1 And '条件2 Then
#后面还有条件就再加一个And

如果有两个及以上条件,只需满足其中一个即可,条件之间可用Or连接

If ‘条件1 Or '条件2 Then
#后面还有条件就再加一个Or

还可用 If...Then...ElseIf...Else 结构

If '条件1 Then
    ' 条件1为真时执行的代码
ElseIf '条件2 Then
    ' 条件2为真时执行的代码
    ' 所有条件都为假时执行的代码
End If
Sub cc()
    Dim grade As Integer
    grade = 85
    If grade >= 90 Then
        Debug.Print "优秀"
    ElseIf grade >= 80 Then
        Debug.Print "良好"
    ElseIf grade >= 70 Then
        Debug.Print "中等"
        Debug.Print "不及格"
    End If
End Sub
#输出结果为良好

ElseIf 上的条件之间也可用 And 和 Or 连接

If '条件1 Then
    ' 条件1为真时执行的代码
ElseIf '条件2 And '条件2.1 Then
    ' 条件2和条件2.1都为真时执行的代码
ElseIf '条件3 Or '条件3.1 Then
    ' 条件3或者条件3.1为真时执行的代码
End If
Sub cc()
    Dim age As Integer
    age = 25
    If age < 18 Then
        Debug.Print "未成年"
    ElseIf age >= 18 And age < 65 Then
        Debug.Print "成年人"
    End If
End Sub
#输出结果为成年人

注意事项:

If...Then...Else 结构允许嵌套使用,可以在 Else 部分使用另一个 If...Then...Else 结构

(2)Select Case 语句

Select Case 语句可以作为 If...Then...ElseIf...Else 语句的替代方法。与 If...Then...Else 语句不同的是,Select Case 语句只在控制结构顶部计算一次表达式,而不是在每个分支中计算。 这使得 Select Case 更适合处理需要对同一变量进行多个不同值比较的情况。

Select Case '表达式
    Case value1
        ' 对应 value1 的代码
    Case value2
        ' 对应 value2 的代码
    Case Else
        ' 未匹配任何值时的代码
End Select
Sub cc()
    Dim i As String
    i = "Monday"
    Select Case i
        Case "Monday"
            Debug.Print "星期一"
        Case "Tuesday"
            Debug.Print "星期二"
        Case "Wednesday"
            Debug.Print "星期三"
        Case Else
            Debug.Print "其他"
    End Select
End Sub
#输出结果为星期一

(3)IIf 函数

IIf 函数用于在单行中进行条件判断。

result = IIf(condition, truea, falsea)
#condition为计算的表达式
#truea为condition为真时返回的值或表达式
#falsea为condition为假时返回的值或表达式
Sub cc()
    Dim x As Integer
    x = 10
    Dim result As String
    result = IIf(x, "x 大于 5", "x 小于或等于 5")
    Debug.Print result
End Sub
#输出结果为 x 大于 5
根据要求条件,使用If...Then...Else语句运行一个语句或者一个语句块,得到对应的值。Select Case 语句可以作为 If...Then...ElseIf...Else 语句的替代方法。IIf函数用于在单行中进行条件判断。 If condition Then [statements][Else elsestatements] 如1:If A>B And C 如2:If x>250 Then x=x-100 或者,可以使用块形式的语法: If condition Then [statements] [ElseIf condition-n Then [elsei
If…Then…Else语句 If condition Then [statements][Else elsestatements] 如1:If A>B And C250 Then x=x-100 或者,可以使用块形式的语法: If condition Then [statements] [ElseIf condition-n Then [elseifstatements] .....
Rang 能否一次给一片区域设置不同的数据呢? 经过测试,类似如下: xlsSheet.Range("A1:D3").Value = Array(Array(1, 2, 3, 4), Array(5, 6, 7, 8), Array(9, 10, 11, 12)) 执行不成功 (VBA基础)Excel中数据去重的处理 CSDN-Ada助手: 首先恭喜你开始了博客创作,希望你能坚持下去,分享更多有价值的内容。对于Excel中数据去重的处理,你可以尝试结合实际案例,分享一些常见的数据去重方法和技巧,让读者能够更深入地了解这个主题。同时,也可以考虑添加一些示例代码,帮助读者更好地理解和应用。希望你能不断完善自己的博客内容,为读者带来更多的收获。加油! 推荐【每天值得看】:https://bbs.csdn.net/forums/csdnnews?typeId=21804&utm_source=csdn_ai_ada_blog_reply1 VBA中Do...Loop循环语句的运用 CSDN-Ada助手: 非常棒的博文!循环语句在VBA中的应用确实是非常重要的一部分,你的分享让我对Do...Loop有了更深入的了解。希望你可以继续分享更多关于VBA的知识,比如VBA中的数组操作和函数的运用,这些内容也是非常实用的。期待你的下一篇文章!加油! 如何写出更高质量的博客,请看该博主的分享:https://blog.csdn.net/lmy_520/article/details/128686434?utm_source=csdn_ai_ada_blog_reply2 VBA中数字的分离 CSDN-Ada助手: 恭喜您写了第四篇博客!标题为“VBA中数字的分离”,非常吸引人。我很高兴看到您持续创作,并分享您在VBA方面的专业知识。在这篇博客中,您讨论了数字在VBA中的分离,这是一个非常实用的技巧。我很期待您在下一篇博客中继续深入探讨VBA的其他方面,或是分享一些与数字分离相关的进阶技巧。谢谢您的分享,期待您的下一篇作品! 如何快速涨粉,请看该博主的分享:https://hope-wisdom.blog.csdn.net/article/details/130544967?utm_source=csdn_ai_ada_blog_reply5 VBA中找出两数组之间的差异 CSDN-Ada助手: 恭喜你写了第6篇博客!看到你分享关于VBA中找出两数组之间的差异的内容,让我受益匪浅。不过在下也略懂一二,或许下一步可以尝试分享一些实际案例或者应用场景,让读者更好地理解和运用这一知识。期待你的下一篇作品!