excel的宏与VBA入门(三)——流程控制

一、条件控制IF

if  逻辑表达式 then
                              语句块
end if

  带else的if语句:

 If  逻辑表达式1 Then  
                              语句块1
                  ElseIf  逻辑表达式2  Then 
                              语句块2
                  ElseIf  逻辑表达式3 Then 
                              语句块3
                   …
                 Else
                             语句块n
 End If

二、条件判断Select/Case

Select Case 测试表达式
        Case 条件表达式1
              语句块1
        Case 条件表达式2
              语句块2
       Case 条件表达式3
              语句块3
       ......
       Case 条件表达式n
              语句块n
       Case Else
              语句块Else
     End Select.

  示例:

Sub test()
  If [a1].Value = "" Then
      MsgBox "A1单元格没有输入数字。"
      Exit Sub '     退出程序
  End If
  Select Case [a1].Value
      Case 0 To 29
          MsgBox ""
      Case 30 To 59
          MsgBox "不及格"
      Case 60 To 79
          MsgBox "及格"
      Case 80 To 89
          MsgBox "良好"
      Case Else
          MsgBox "优秀"
  End Select
End Sub

三、循环控制For/Next

 For 循环变量=初值 to 终值 step 步长
       循环体1
      [exit for]
      循环体2
  next 循环变量   

  示例:(步长默认为1,next后的循环变量可以省略 )

Sub mysum()
  Dim Lsum As Long, i As Long
  For i = 1 To 1000
      Lsum = Lsum + i
  Next
  MsgBox "1到1000的自然数和为:" & Lsum
End Sub

  //更多实例,参考开篇链接

四、循环控制For/Each

For Eacn 元素变量 In 对象集合或数组名称
      语句块1
      [Exit For]
      语句块2
next 元素变量

  //与上一个循环类似,这里采用元素变量从对象集合中取得方式

五、循环控制Do/While

 Do Wihle 循环条件
            语句块1
           [Exit Do]
            语句块2
      Loop

  Do 
            语句块1
           [Exit Do]
            语句块2
       Loop Wihle 循环条件

  //示例暂略

六、循环控制Do/Until

Do Until 循环条件
            语句块1
           [Exit Do]
            语句块2
      Loop
   

 Do 
            语句块1
           [Exit Do]
            语句块2
       Loop Until 循环条件

  //与Do/While相反的是为真时退出

七、循环控制GoTo

Sub mysum()
Dim Lsum As Long, i As Long
i = 1
x: '为go to 语句设置的标签,必须以英文状态下的冒号结尾
   Lsum = Lsum + i
   i = i + 1
If i <= 1000 Then GoTo x '如果i<=1000,则程序跳到标签X处
MsgBox "1到1000的自然数和为:" & Lsum
End Sub
原文地址:https://www.cnblogs.com/jiangbei/p/9359664.html