VBA for循环

本文概述

  • 说明
  • 嵌套用于下一个循环
  • 退出声明
For循环是一种重复控制结构, 允许开发人员以逻辑方式编写一个需要执行特定次数的循环。
流程图
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 = 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超过时才停止循环。
嵌套用于下一个循环 你还可以使用嵌套的for循环在excel中完成更复杂的自动化。 “下一个”循环中将有一个“下一个”循环。
例如:假设你要保护系统中所有打开的工作簿中的所有工作表。
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 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

    推荐阅读