vba 跳出for迴圈_VBA的基本語句
阿新 • • 發佈:2021-01-07
技術標籤: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