VBA实战(04) - 决策与循环

1. 决策

1.1. if语句

语法如下。

if boolean_expression then
    Statement 1
    .....
    .....
    Statement n
end if

案例:

Sub if_demo_Click()
   Dim x As Integer
   Dim y As Integer

   x = 234
   y = 32

   If x > y Then
      MsgBox ("X 的值大于 Y 的值")
   End If
End Sub

1.2. if … else 语句

一个if语句由一个布尔表达式和一个或多个语句组成。如果条件评估为True,则执行if条件下的语句。如果条件评估为False,则执行else部分块下的语句。

语法:

if boolean_expression then
    Statement 1
    .....
    .....
    Statement n
else
    Statement ...
end if

案例:

判断一个成绩是否及格(60分及格)。

Sub scoreTest()

    Dim v_score As Integer
    v_score = InputBox("请输入你的成绩", "成绩")
    
    If v_score >= 60 Then
        MsgBox ("成绩为:" & v_score & ",成绩及格!")
    Else
        MsgBox ("成绩为:" & v_score & ",成绩不及格!")
    End If
End Sub

1.3. if … elseif … else 语句

语法:

if boolean_expression then
    Statement 1
    .....
    .....
    Statement n
elseif boolean_expression then
    ...
else
    Statement ...
end if

案例:

对分数进行分等级,大于等于90分为优秀;大于等于80分为良好;大于等于70分为中等;大于等于60分为合格;小于60分为不及格。

Sub scoreTest()

    Dim v_score As Integer
    v_score = InputBox("请输入你的成绩", "成绩")
    
    If v_score >= 90 Then
        MsgBox ("成绩为:" & v_score & ",成绩优秀!")
    ElseIf v_score >= 80 Then
        MsgBox ("成绩为:" & v_score & ",成绩良好!")
    ElseIf v_score >= 70 Then
        MsgBox ("成绩为:" & v_score & ",成绩中等!")
    ElseIf v_score >= 60 Then
        MsgBox ("成绩为:" & v_score & ",成绩合格!")
    Else
        MsgBox ("成绩为:" & v_score & ",成绩不及格!")
    End If
End Sub

2. 循环

2.1. for 循环

案例:
计算 1+2+3+… + 100 的结果。

Sub sumTest()

    Dim sum As Integer
    sum = 0
    ' 从1循环到100
    For i = 1 To 100
        sum = sum + i
    Next i
    MsgBox ("1+2+3+...+99+100=" & sum)

End Sub

案例:
打印表格中的序号。

Sub test01()

    Dim sum As Integer
    sum = 10
    ' 从1循环到100
    For i = 1 To sum
        Cells(i, 1) = i
    Next i

End Sub

2.2. 设置步长

案例:
计算 1+3+5… + 101 的结果。

Sub sumTest()

    Dim sum As Integer
    sum = 0
    ' 从1循环到101,步长为2
    For i = 1 To 101 Step 2
        sum = sum + i
    Next i
    MsgBox ("1+3+...+99+101=" & sum)

End Sub

案例:
计算 100+99+98+…+2+1 的结果。

Sub sumTest()

    Dim sum As Integer
    sum = 0
    ' 从1循环到101,步长为-1
    For i = 100 To 1 Step -1
        sum = sum + i
    Next i
    MsgBox ("100+99+...+2+1=" & sum)

End Sub

2.3. 嵌套循环

案例:

在单元格中打印出单元格的坐标。

Sub test004()
    
    v_row_count = 9
    v_col_count = 9
    
    For i = 1 To v_row_count
        For j = 1 To v_col_count
            Cells(i, j) = i & "," & j
        Next j
    Next i

End Sub

案例:

在表格中打印出九九乘法表。

Sub test004()
    
    v_row_count = 9
    v_col_count = 9
    
    For i = 1 To v_row_count
        For j = 1 To i
            Cells(i, j) = i & "*" & j & "=" & (i * j)
        Next j
    Next i

End Sub

2.4. 退出循环

退出循环可以使用 exit for 实现。

案例:

Sub test004()
    
    v_row_count = 9
    v_col_count = 9
    
    For i = 1 To v_row_count
        For j = 1 To v_col_count
            Cells(i, j) = i & "*" & j & "=" & (i * j)
            If j >= i Then
                Exit For
            End If
        Next j
    Next i

End Sub

其他链接

VBA实战(05) - 常用函数总结
VBA实战(06) - 数组

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jie_ming514

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值