如何为每个循环使用VBA? (带有Excel示例)
每个循环的Excel VBA
每个循环的VBA 遍历所有对象或项目的集合,并进行类似的活动。它将考虑所有可用的指定对象,并在每个对象中执行指示的活动。
在VBA中,必须了解VBA中的循环。循环使您可以对excel中的许多单元格或对象进行相同类型的活动。在今天的文章中,我们将专注于For Each循环机制。
句法
对于每个循环,可以循环遍历所有设置的对象或项目集合。集合只不过是“所有打开的工作簿”,“工作簿中的所有工作表”,“工作簿中的所有形状和图表的集合”。
让我们看一下语法。
对于每个 集合中的对象怎么办? 下一个 目的
例如,您的工作簿中有10张工作表,并且您想要隐藏除您所在的工作表以外的所有工作表。您可以手动隐藏吗,是的,您可以,但是如果您有100张工作表,那不是那么无聊和时间耗时的任务要做。您可以为每个循环使用此功能。
如何在VBA中使用For Each Loop? (例子)
您可以在此处下载此VBA用于每个循环模板– VBA用于每个循环模板Example#1 –在所有工作表中插入相同的文本
我们将通过一个简单的示例了解如何在VBA中使用FOR EACH。假设您在一个工作簿中有5个工作表,并且要在单元格A1中的所有工作表中插入单词“ Hello”。
我们可以使用FOR EACH LOOP做到这一点。您需要记住的一件事是,我们实际上是在每个工作表中而不是在同一工作表中执行此活动。请按照以下步骤编写VBA代码。
步骤1: 启动excel宏。
代码:
Sub For_Each_Example1()结束Sub
第2步: 由于我们指的是工作表,因此将该变量声明为“ Worksheet”。
代码:
Sub For_Each_Example1()Dim Ws作为工作表结尾Sub
第三步: 现在使用FOR EACH LOOP,我们需要引用活动工作簿中的每个工作表。
代码:
Sub For_Each_Example1()将ActiveWorkbook中每个W的Ws作为工作表调暗。工作表Next Ws结束Sub
第4步: 现在在每个工作表中写下我们想做的事情。在每个工作表中,我们需要在单元格A1中放置“ Hello”一词。
代码:
Sub For_Each_Example1()将ActiveWorkbook.Worksheets Ws.Range(“ A1”)。Value =“ Hello”下一个Ws作为工作表的Ws作为下一个Ws结束
步骤5: 现在,通过选项手动运行此代码或按快捷键F5,无论有多少工作表,都将在所有工作表中插入单词“ Hello”。
Example#2 –隐藏所有工作表
如文章前面所述,如果除了您所在的那张纸之外还有数百张纸要隐藏,该怎么办。使用For Each循环,我们可以在excel中隐藏所有纸页。
步骤1: 用您的名字启动宏。
代码:
Sub For_Each_Example2()结束Sub
第2步: 将该变量声明为“瓦数”.
代码:
Sub For_Each_Example2()Dim Ws作为工作表结尾Sub
第三步: 现在,在每个工作表中,您需要做的就是隐藏工作表。
代码:
Sub For_Each_Example2()将ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden下一个Ws作为工作表中的Ws缩小为下一个Ws结束Sub
第4步: 但是,如果运行上面的代码,它将尝试隐藏所有工作表,但是excel需要至少有一个工作表可见。因此,我们需要告诉您不要隐藏哪张纸。
代码:
Sub For_Each_Example2()将ActiveWorkbook.Worksheets中的Ws用作工作表的Ws.Ws.Name如果“主表”,则Ws.Visible = xlSheetVeryHidden End,如果下一个Ws结束
这 运算符 方法 不等于VBA.
因此,代码说,当您循环浏览活动工作簿中的所有工作表时,仅当工作表名称与“主工作表”的工作表名称不相等时才会隐藏。
这可以通过使用VBA中的IF语句来完成。将代码写为IF Ws.Name“ Main Sheet”,然后隐藏,或者等于工作表名称“ Main Sheet”,然后隐藏。
步骤5: 现在,使用F5键或手动运行代码,它将隐藏除名为“ Main Sheet”的工作表之外的所有工作表。
Example#3 –取消隐藏所有工作表
我们已经看到了如何隐藏除我们所在的工作表之外的所有工作表。类似地,我们也可以取消隐藏所有工作表。
我们只需要更改代码即可 xlSheetVeryHidden 到 xlSheetVisible。
代码:
Sub For_Each_Example3()将ActiveWorkbook中每个W的Ws作为工作表的昏暗Ws.Worksheets Ws.Visible = xlSheetVisible下一个Ws结束Sub
在这里,我们不需要IF条件,因为我们隐藏了所有工作表。如果您不想取消隐藏任何特定的工作表,则可以使用IF条件并提供工作表名称。
Example#4 –保护和取消保护所有工作表
保护所有图纸: 我们仅需一段代码就可以保护工作簿中的所有工作表。所有代码都是相同的,我们唯一需要做的就是代替Ws。可见我们需要输入代码Ws。保护并输入密码。
代码:
Sub For_Each_Example4()将ActiveWorkbook.Worksheets Ws.Protect密码中的Ws作为工作表的Ws.Protect密码:=“ Excel @ 2019” Next Ws End Sub
取消保护所有工作表: 同样,使用vba,我们还可以取消保护工作簿中所有受保护的工作表。我们只需要输入Unprotect和密码一词即可。
代码:
Sub For_Each_Example6()将ActiveWorkbook.Worksheets Ws.Unprotect Password:=“ Excel @ 2019”下一个Ws作为工作表中的Ws昏暗的Ws结束Sub
要记住的事情
- 每个都用于对象的集合。
- 它将考虑指定工作簿中的所有指定对象。
- 在声明变量时,我们需要指向哪个对象。例如工作表,工作簿,图表等。