本文概述
- 说明
- 嵌套用于下一个循环
- 退出声明
流程图
文章图片
下面是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 = 0For i = 1 to 10iTotal = I + iTotalNext iMsgBox iTotalEnd Sub
说明
- 计数器变量是i, 需要声明。
- 计数器的Start_value为1, 其End_value为10, 均为数值。
- 关键字“ Step”是可选的, 它是一个数字值, 每次运行循环时, 计数器都会以此值递增。
- 下一条语句是将计数器增加步长值, 然后返回for语句, 如果计数器值未超过“ End_value” 10, 则该语句将重复代码。
- 如果计数器等于End_value, 则循环将继续, 或者仅在End_value超过时才停止循环。
例如:假设你要保护系统中所有打开的工作簿中的所有工作表。
Sub ProtectWorksheets ()Dim i As IntegerDim j As IntegerFor i = 1 to Workbooks.CountFor j = 1 to Workbooks(i).Worksheets.CountWorkbooks(i).Worksheets(j).ProtectNext jNext iEnd Sub
退出声明 通过使用语句的出口, 可以退出for循环语句而无需完成整个周期。 Exit for命令将立即停止现有循环的执行。
流程图
文章图片
【VBA for循环】例如, 这是检查是否存在任何负值的更有效方法。但是在这种情况下, 没有负值, 我们可以退出循环并节省一些VBA处理时间。
Sub HighlightNegativeCells()Dim All As RangeFor Each All In SelectionIf WorksheetFunction.Min(Selection) >
= 0 Then Exit ForIf All.Value <
0 ThenAll.Interior.Color = vbRedEnd IfNext AllEnd Sub