📜  VBA For循环

📅  最后修改于: 2021-01-11 14:15:11             🧑  作者: Mango

VBA循环

For循环是一种重复控制结构,允许开发人员以逻辑方式编写一个需要执行特定次数的循环。

流程图

下面是for循环中的一些控制流,如下所示:

  • 首先,执行for循环。这使您可以初始化任何循环控制变量并递增步数计数器变量。
  • 其次,评估循环条件。如果为True,则执行循环主体。如果它为假,则该主体将不执行。控制流跳到For循环后的下一条语句。
  • 然后将执行for循环的主体,控制流跳至下一条语句。此语句允许您更新任何循环控制变量。它根据步数计数器值进行更新。
  • 现在,条件将重新评估。如果为true,则执行循环,并重复整个过程。如果条件为假,则for循环将终止。

句法

For循环执行一段代码特定次数。

For counter_variable = start_value To end_value
........
........
[Block of code]
.........
.........
Next conter_varaiable

Sub forNext ()
Dim i As Integer 
Dim iTotal As Integer 
iTotal = 0
For i = 1 to 10
      iTotal = I + iTotal
Next i
MsgBox iTotal
End Sub

说明

  • 计数器变量是i,需要声明。
  • 计数器的Start_value为1,其End_value为10,均为数值。
  • 关键字“ Step”是可选的,它是一个数字值,每次运行循环时,计数器都会以此值递增。
  • 下一条语句是将计数器增加步长值,然后返回for语句,如果计数器值未超过“ End_value” 10,则该语句将重复代码。
  • 如果计数器等于End_value ,则循环将继续,或者仅当End_value超过时才停止循环。

嵌套用于下一个循环

您还可以使用嵌套的for循环在excel中完成更复杂的自动化。 “下一个”循环中将有一个“下一个”循环。

例如:假设您要保护系统中所有打开的工作簿中的所有工作表。

Sub ProtectWorksheets ()
Dim i As Integer
Dim j As Integer
For i = 1 to Workbooks.Count
For j = 1 to Workbooks(i).Worksheets.Count
Workbooks(i).Worksheets(j).Protect
Next j
Next i
End Sub

退出声明

您可以通过使用语句的出口来退出for循环语句,而无需完成整个周期。 Exit for命令将立即停止现有循环的执行。

流程图

例如,这是检查是否存在任何负值的更有效方法。但是在这种情况下,没有负值,我们可以退出循环并节省一些VBA处理时间。

Sub HighlightNegativeCells()
Dim All As Range
For Each All In Selection
If WorksheetFunction.Min(Selection) >= 0 Then Exit For
If All.Value < 0 Then
All.Interior.Color = vbRed
End If
Next All
End Sub