VBA结构总结

发布时间 2023-06-18 22:52:08作者: iZJ"Qq4577105

三大结构:顺序、选择、循环

选择

If 条件表达式 Then
     真执行的,语句1
    ElseIf 条件表达式
     假执行的,语句2
    Else
     上面情况都不满足执行则执行本,语句3
End If

 

循环

For循环

For … Next 循环
For Each 循环

  • For...Next循环
//For … Next 循环
For [变量] = [初始值] To [结束值] Step [步长]   //Step不写 步长默认为1
    //这里是循环执行的语句
Next [变量]
//For Each 循环
For [变量] = [初始值] To [结束值] Step [步长]
    //这里是循环执行的语句
Next [变量]

//E.g:
Sub MyCode()
    Dim i As Integer
    Dim sum As Integer

    For i = 1 To 10
        sum = sum + i
        If sum > 30 Then
            Exit For        //Exit For相当于C语言中的break;跳出结束循环。在VBA中仅用于For...Next和For Each
        End If    
    Next 
    
End Sub
  • For Each循环
//For Each循环
For Each [元素] In [元素集合]
    //循环执行的代码
Next [元素]

//E.g:
Sub MyCode()
    Dim sh As Worksheet
   
    For Each sh In Worksheets
        Debug.Print sh.Name
    Next sh
    
End Sub

 

Do While循环

Do While … Loop 循环
Do … Loop While 循环

  • Do While … Loop 循环
//Do While … Loop 循环
Do While [条件表达式]
    '循环执行的代码
Loop

//E.g:
Sub MyCode()
    Dim i As Integer
    Dim sum As Integer
  
    i = 1
    Do While i <= 10
        sum = sum + i
        
         If sum > 30 Then
            Exit Do        //Exit Do和Exit For一样,相当于C语言中的break;跳出结束循环。在VBA中仅用于Do While系列循环
        End If 
        
        i = i + 1
    Loop
    
End Sub
  • Do … Loop While 循环(至少一次)
//Do … Loop While 循环与上一种 Do 循环不同的是,
//Do ... Loop While循环至少循环执行代码一次后,再判断条件表达式的值。
//基本语法如下:
Do
    //循环执行的代码
Loop While [条件表达式]

//E.g:
Sub MyCode()
    Dim i As Integer
    Dim sum As Integer
    i = 1
    
    Do 
        sum = sum + i
        i = i + 1
    Loop While i <= 10
    
End Sub

 

Do Until 循环

Do Until … Loop 循环
Do … Loop Until 循环

  • Do Until … Loop 循环
//Do Until … Loop 循环
//循环开始前判断 Until 后条件表达式的值,如果是真,停止循环;如果是假,继续执行循环。
//基本语法如下:
Do Until [条件表达式]
    //循环执行的代码
Loop
  • Do … Loop Until 循环(至少一次)
    //Do … Loop Until 循环
    //先运行一次,再判断 Until 后条件表达式的值,如果是真,停止循环;如果是假,继续执行循环。
    //基本语法如下:
    Do
        '循环执行的代码
    Loop Until [条件表达式]

 

本文来源转载:https://www.lanrenexcel.com/vba-program-loop-structure/