个性化阅读
专注于IT技术分析

VBA for each循环

For Each循环用于为数组中的每个元素执行一个语句或一组语句。

“ For Each”循环类似于“ For”循环。对数组中的每个元素执行此循环。因此, 该循环中将不存在步数计数器。它通常与数组一起使用或在文件系统对象的上下文中递归操作。

句法

For Each element In group
   [Statement 1]
   [Statement 2]
  ................

................
   [Statement n]

   [Exit For]

   [Statement 11]
   [Statement 22]
Next

你可以使用VBA中的“对于每个”循环在一组集合中构建一个循环。

以下是在excel VBA中使用For Each循环的一组集合的示例, 例如:

  • 一组所有打开的工作簿。
  • 工作簿中所有工作表的一组。
  • 所选单元格范围内的所有单元格的一组。
  • 工作簿中所有图表或形状的一组。

使用“对于每个”循环, 你可以遍历集合中的每个对象, 并对其执行一些操作。

例如, 你可以浏览工作簿中的所有工作表并延长这些工作表的时间。或者, 你可以浏览工作表中的所有单元格并更改格式。

使用For Each循环, 你无需知道集合中有多少个对象。

对于每个循环, 都会自动遍历每个对象并执行指定的操作。

例如, 如果你保护工作簿中的所有工作表, 则无论你的工作簿包含1个工作表还是20个工作表, 代码都是相同的。

假设你有一个要保护所有工作表的工作簿。如:

Sub ProtectSheets()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
Ws.Protect
Next ws
End Sub

在上面的示例中, 我们将’ws’变量用作Worksheet对象。这告诉VBA, 在该代码中应使用’ws’解释为工作表对象。

现在, 我们使用“ For Each”语句遍历活动工作簿中的工作表集合中的每个“ ws”。

请注意, 与尝试保护工作簿中所有工作表的其他循环不同, 在这里你不必担心工作簿中有多少个工作表。

你无需计算这些就可以运行循环。对于每个循环, 请确保一个一个地分析所有对象。

现在, 浏览所有打开的工作簿并保存所有:

如果你同时使用多个工作簿, 则可以一次保存所有这些工作簿。如,

Sub SaveAllWorkbooks()
Dim wb As Workbook
For Each wb In Workbooks
wb.Save
Next wb
End Sub

请注意, 在上面的示例中, 要将工作簿保存在特定位置, 在这种情况下, 不会出现提示你的提示。它将其保存在默认文件夹中。

Private Sub Constant_demo_Click()  
   'colors is an array
   colors = Array("Pink", "orange", "Red")
   Dim colornames As Variant
   'iterating using For each loop.
   For Each Item In colors
      colornames = colornames & Item & Chr(10)
   Next
   MsgBox colornames
End Sub
VBA for each循环

执行上面的代码, 你将获得以下输出, 例如:

VBA for each循环

赞(0)
未经允许不得转载:srcmini » VBA for each循环

相关推荐

评论 抢沙发

评论前必须登录!