選擇判斷
選擇判斷(If...Then)
Sub iftime()
MsgBox Time
If Time < 0.5 Then
MsgBox " 早上好!"
ElseIf Time > 0.75 Then
MsgBox " 晚上好!"
Else
MsgBox " 下午好!"
End If
End Sub
選擇判斷(Select...Case)
Sub dengji()
' 定義一個Variant型變量cj
Dim cj As Variant
cj = InputBox(" 輸入考試成績:")
' Select語句開始
Select Case cj
Case 0 To 59
MsgBox " 等級:D "
Case 60 To 69
MsgBox " 等級:C "
Case 70 To 89
MsgBox " 等級:B "
Case 90 To 100
MsgBox " 等級:A "
Case Else
MsgBox " 輸入錯誤!"
' Select 語句結束
End Select
End Sub
循環
循環(For...Next)
For <循環變量>=<初值>To<終值>[Step 步長值]
<循環體>
[Exit For]
[循環體]
Next [循環變量]
- 步長是可選參數,若省略,默認步長爲1.
- 可以在循環體中任意處加一句或多句 Exit For,當遇到這個語句,退出For 循環,執行Next後的語句。
- Next 更改循環變量的值,執行下一個循環變量。變量名稱可以省略,直接寫成Next。
例:根據A列成績在B列更新其對應等級
Sub dengji()
Dim xj As String, i As Integer
For i = 2 To 50 Step 1
Select Case Cells(i, "A")
Case 0 To 59
xj = " D "
Case 60 To 69
xj = " C "
Case 70 To 89
xj = " B "
Case 90 To 100
xj = " A "
Case Else
xj = " 輸入錯誤!"
End Select
Cells(i, "B") = xj
Next i
End Sub
循環(Do...While)
Do [While 邏輯表達式]
<循環體>
[Exit Do]
[循環體]
Loop
- 若 邏輯表達式 的值爲TRUE時,執行循環體,否則執行Loop後的語句,可省略,如果省略應在程序中使用Exit Do語句,讓程序滿足一定的條件後退出循環。
- [Exit Do] 可選語句,執行Exit Do 語句後,將跳出循環,執行Loop後的語句。
- Loop 標誌Do While 語句結束,返回Do 語句處,再次判斷循環條件。
例:根據A列成績在B列更新其對應等級
Sub dengji()
Dim xj As String, i As Integer
i = 2
Do While Cells(i, "A") <> ""
Select Case Cells(i, "A")
Case 0 To 59
xj = " D "
Case 60 To 69
xj = " C "
Case 70 To 89
xj = " B "
Case 90 To 100
xj = " A "
Case Else
xj = " 輸入錯誤!"
End Select
Cells(i, "B") = xj
i = i + 1
Loop
End Sub
也可以在結尾處判斷循環條件,語句爲:
Do
<循環體>
[Exit Do]
[循環體]
Loop [While 邏輯表達式]
注意: 這種循環格式在循環條件一開始就爲false的時候要多執行一次循環體
例:根據A列成績在B列更新其對應等級
Sub dengji()
Dim xj As String, i As Integer
i = 2
Do
Select Case Cells(i, "A")
Case 0 To 59
xj = " D "
Case 60 To 69
xj = " C "
Case 70 To 89
xj = " B "
Case 90 To 100
xj = " A "
Case Else
xj = " 輸入錯誤!"
End Select
Cells(i, "B") = xj
i = i + 1
Loop While Cells(i, "A") <> ""
End Sub
循環(Do...Until)
Do [Until 邏輯表達式]
<循環體>
[Exit Do]
[循環體]
Loop
結尾判斷式
Do
<循環體>
[Exit Do]
[循環體]
Loop [Until 邏輯表達式]
- 若 邏輯表達式 的值爲False時,執行循環體,否則退出循環。
例:根據A列成績在B列更新其對應等級
Sub dengji()
Dim xj As String, i As Integer
i = 2
Do
Select Case Cells(i, "A")
Case 0 To 59
xj = " D "
Case 60 To 69
xj = " C "
Case 70 To 89
xj = " B "
Case 90 To 100
xj = " A "
Case Else
xj = " 輸入錯誤!"
End Select
Cells(i, "B") = xj
i = i + 1
Loop Until Cells(i, "A") = ""
End Sub
循環(For Each...Next)
For Each 元素變量 In 集合名稱或數組名稱
<語句塊1>
[Exit For]
[語句塊2]
next [元素變量]
- 循環會默認遍歷 集合或數組中所有的元素變量 。
例:獲取工作簿的各個工作表名
Sub shtname()
Dim shtname()
Dim sht As Worksheet, i As Integer
i = 1
For Each sht In Worksheets
Cells(i, "D") = sht.Name
i = i + 1
Next sht
End Sub