1. 程式人生 > 其它 >vba 跳出for迴圈_VBA的基本語句

vba 跳出for迴圈_VBA的基本語句

技術標籤:vba 跳出for迴圈

‘塊’的形式的VBA語句比完整一行的程式碼功能和適用性方面更強。

一、IF語句

二選一:

IF 條件表示式 THEN
     條件表示式返回True時要執行的操作和計算
[ELSE
     條件表示式返回False時要執行的操作和計算]
END IF

多選一:

IF 條件表示式 THEN      
     條件表示式返回True時要執行的操作和計算 
ELSEIF 條件表示式 THEN     
     條件表示式返回False時要執行的操作和計算 
ELSEIF 條件表示式 THEN      
     條件表示式返回False時要執行的操作和計算 
[ELSE      
     條件表示式返回False時要執行的操作和計算]
END IF 

二、Select Case語句

Select Case 表示式
    Case Is 條件表示式1                                   ‘如Case Is >8或者Case 1 to 8
          條件表示式返回False時要執行的操作和計算
    Case Is 條件表示式2
          條件表示式返回False時要執行的操作和計算
    Case Is 條件表示式3
          條件表示式返回False時要執行的操作和計算
    Case ELSE
          條件表示式返回False時要執行的操作和計算
End Select
'多選一

Case Select相比於IF的多選一判斷,適用性更強

三、For …Next語句

For 迴圈變數=初值 to 終值 [step 步長值]
    迴圈體(要迴圈執行的操作或計算)
    [Exit For]                        '不論設定迴圈執行多少次,當執行Exit For時,直接執行Next語句之後的程式碼
    [迴圈體]
Next [迴圈變數名]

例1:

Public Sub 插入奇數() 
Dim xrows As Byte  
For xrows = 1 To 99 Step 2  
Cells((xrows + 1) / 2, "A") = xrows  
Next xrows End Sub  
'找出100以內的奇數

例2:

Public Sub 被3整除的數() 
Dim i As Byte 
For i = 3 To 99 Step 3 
Cells(i / 3, "A") = i 
Next i 
End Sub 
'找出100以內能被3整除的數

四、For Each… next語句

For each 變數 in 集合名稱或陣列名稱
    語句塊1
    [Exit For]
    [語句塊2]
Next [元素變數]
'如果在陣列中迴圈,變數定義為相應的資料型別,如果是在陣列中迴圈,變數定義為Variant型別

例:

Public Sub 插入sheet名()
Dim sht  As Worksheet, i As Integer
i = 1
For Each sht In Worksheets
Cells(i, "A") = sht.Name
i = i + 1
Next sht
End Sub
'插入工作簿中的工作表名

五、Do While語句

開頭判斷式:

Do [While 迴圈條件]
   迴圈體
   [Exit Do]
   [迴圈體]
Loop
'如果迴圈體中存在Exit Do語句將跳出迴圈,執行Loop後語句

結尾判斷式:

Do 
   迴圈體
   [Exit Do]
   [迴圈體]
Loop [While 迴圈條件]

使用結尾判斷式語句會比開頭判斷式多執行一次迴圈體

例1:

Public Sub ShtAdd()
    Dim i as byte
    i=1
    Do
        Worksheets.Add
        i=i+1
    Loop While i<=5
End Sub

例2:

Public Sub ShtAdd2()
    Dim i as byte
    i=1
    Do
        If i>5 Then Exit Do
        Worksheets.Add
        i=i+1
    Loop 
End Sub

六、Do Until

開頭判斷式:

Do [Until迴圈條件]    
    迴圈體    
   [Exit Do]    
   [迴圈體] 
Loop

結尾判斷式:

Do 
   迴圈體
   [Exit Do]
   [迴圈體]
Loop [Until 迴圈條件]

Do While語句和Do Until用法基本相同,不同的是Do while語句在迴圈條件為False時退出迴圈,Do

Until語句在迴圈條件為True時退出迴圈。

例:

Public Sub 新建工作表()
Dim i As Integer
i = 1
Do Until i > 5
Worksheets.Add
i = i + 1
Loop
End Sub

七、GoTo語句

讓程式跳轉到目標地址

例:

Public Sub 跳轉()
Dim sum As Long, i As Integer
i = 1
x: sum = sum + i
i = i + 1
If i <= 100 Then GoTo x
MsgBox "1到100的自然數和是:" & sum
End Sub

八、With語句

減少錄入重複程式碼的次數及提高程式的執行效率

例:

Public Sub 簡化()
 With Worksheets("sheet1").Range("A1").Font
 .Name = "宋體"
 .Size = 12
 .Bold = True
 .ColorIndex = 3
 End With
 End Sub