VBA条件语句和循环结构
条件语句 - If...Then...Else
条件语句 If...Then...Else
用于根据条件执行不同的代码块。语法如下:
If 条件 Then
' 如果条件为真,执行这里的代码
Else
' 如果条件为假,执行这里的代码
End If
' 如果条件为真,执行这里的代码
Else
' 如果条件为假,执行这里的代码
End If
示例程序:
Sub ConditionalExample()
Dim myNumber As Integer
myNumber = 42
If myNumber > 50 Then
MsgBox "Number is greater than 50"
Else
MsgBox "Number is 50 or less"
End If
End Sub
Dim myNumber As Integer
myNumber = 42
If myNumber > 50 Then
MsgBox "Number is greater than 50"
Else
MsgBox "Number is 50 or less"
End If
End Sub
上述示例中,如果 myNumber
大于 50,则显示 "Number is greater than 50",否则显示 "Number is 50 or less"。
循环结构 - For...Next
For...Next
语句用于循环执行一段代码多次。语法如下:
For 变量 = 初始值 To 终止值
' 在这里执行循环体的代码
Next 变量
' 在这里执行循环体的代码
Next 变量
示例程序:
Sub LoopExample()
Dim i As Integer
For i = 1 To 5
MsgBox "Current value of i is: " & i
Next i
End Sub
Dim i As Integer
For i = 1 To 5
MsgBox "Current value of i is: " & i
Next i
End Sub
上述示例中,变量 i
从 1 循环到 5,每次循环都显示当前的 i
值。
循环结构 - Do...Loop
Do...Loop
语句用于根据条件循环执行一段代码。语法如下:
Do While 条件
' 在这里执行循环体的代码
Loop
' 在这里执行循环体的代码
Loop
示例程序:
Sub DoLoopExample()
Dim i As Integer
i = 1
Do While i <= 5
MsgBox "Current value of i is: " & i
i = i + 1
Loop
End Sub
Dim i As Integer
i = 1
Do While i <= 5
MsgBox "Current value of i is: " & i
i = i + 1
Loop
End Sub
上述示例中,当 i
小于等于 5 时,不断循环执行代码块。
循环结构 - For Each...Next
For Each...Next
语句用于遍历集合中的每个元素。语法如下:
For Each 元素 In 集合
' 在这里执行循环体的代码
Next 元素
' 在这里执行循环体的代码
Next 元素
示例程序:
Sub ForEachExample()
Dim cell As Range
Dim myRange As Range
Set myRange = Worksheets("Sheet1").Range("A1:A5")
For Each cell In myRange
MsgBox "Value in cell: " & cell.Value
Next cell
End Sub
Dim cell As Range
Dim myRange As Range
Set myRange = Worksheets("Sheet1").Range("A1:A5")
For Each cell In myRange
MsgBox "Value in cell: " & cell.Value
Next cell
End Sub
上述示例中,For Each cell In myRange
遍历 myRange
中的每个单元格,并显示其值。