For循环在Microsoft Excel VBA的7例
_如果您正在编写VBA程序,并且希望多次执行相同的任务,则可以通过使用VBA for循环来执行此操作。 VBA是一种顺序编程语言。每行代码从上到下执行,直到没有更多的代码行可读取为止。如果要返回并执行任务,则必须使用宏代码强制执行。
您可以通过循环获得结果。_
VBA中的For循环是最常见的循环类型之一。 For循环具有两种形式:For Next和For Each In Next。 For循环通常用于在项目或数字列表中顺序移动。
要在任何给定点结束For循环,我们可以使用exit语句。
For Loop将不断循环直到满足最终条件。一旦满足结束条件,编程流程将沿其自然方向继续向下。
The For … Next loop has the following syntax: For counter = start_counter To end_counter 'Do something here (your code) Next counter
实际上,我们正在创建一个使用变量计数器作为循环的“时间守护者”的循环。我们在循环开始时将其设置为等于start_counter的值,然后在每个循环中将其递增1,直到满足结束条件为止。循环将一直执行到计数器的值等于end_counter为止。当上述两个值都匹配时,循环将最后执行一次,然后循环停止。
以上所有内容可能会让某些人感到困惑,所以让我们着手准备并开始学习excel中的For Loop。
创建一个新的excel工作簿,然后将其保存为扩展名.xlsm要启动Visual Basic编辑器屏幕,请使用ALT + F11插入新模块在VB标准模块中复制以下代码
循环1(使用msgbox显示数字)
Sub Loop1() Dim StartNumber As Integer Dim EndNumber As Integer EndNumber = 5 For StartNumber = 1 To EndNumber MsgBox StartNumber & " is " & "Your StartNumber" Next StartNumber End Sub
代码说明:
VBA代码需要您为StartNumber赋值,其中EndNumber是声明为整数的变量作为循环的起点。这些值可以是任何数字,并且EndEnd为5 StartNumber从1开始,对于StartNumber = 1至EndNumber表示代码将从1(开始编号)开始到5(结束编号)
-
MsgBox StartNumber&“为”&“ Your StartNumber”将显示以下消息框
Loop2(填充值)
Sub Loop2() 'Fills cells A1:A56 with values of X by looping' --- Comment 'Increase value of X by 1 in each loop' --- Comment Dim X As Integer For X = 1 To 56 Range("A" & X).Value = X Next X End Sub
代码说明:
我们将X分配为整数,对于X = 1到56;这将从1开始并一直持续到56,每次以1为增量* Range(“ A”&X).Value = X;该行将存储X的值,并将传递到范围A1至A56
Loop3(用背景色填充单元格)
Sub Loop3() ' Fills cells B1:B56 with the 56 background colours' --- Comment Dim X As Integer For X = 1 To 56 Range("B" & X).Select With Selection.Interior .ColorIndex = X .Pattern = xlSolid End With Next X End Sub
代码说明:
我们已将X分配为整数。对于X = 1到56,它们将以1开头,并持续到56,并且每次Range(“ B”&X)递增1。该行将存储X的值并选择单元格B1到B56接下来的4行,即使用Selection.Interior将选择内部colorindex并从该colorindex的X中获取值,以使1属于黑色; 2属于白色; 3代表红色,依此类推
循环4(以2为增量填充值)
默认情况下,“步长”值为正1,但是可以将其设置为大于1的数字。
Sub Loop4() ' Fills every second cell from C1:C50 with values of X' --- Comment Dim X As Integer For X = 1 To 50 Step 2 Range("C" & X).Value = X Next X End Sub
代码说明:
我们已将X分配为整数对于X = 1到50,第2步;这将以X中的1开始,直到50为止,每次递增2 * Range(“ C”&X).Value = X;该行将存储X的值,并将传递到范围C1至C50
循环5(VBA用于带有STEP指令的反向循环)
For循环中的计数器不必从低到高移动;相反,For循环也可以向后运行,即从高到低。
即使默认情况下,Step值是正向的,也可以按相反的顺序将其设置为数字。
Sub Loop5() ' Fills cells from D1:D50 with values of X' --- Comment ' In this case X decreases by 1' --- Comment Dim X As Integer, Row As Integer Row = 1 For X = 50 To 0 Step -1 Range("D" & Row).Value = X Row = Row + 1 Next X End Sub
代码说明:
我们已将X&Row分配为整数Row包含值1 For X = 50 to 0 Step -1;这将从50开始,在X中递减1,直到0 Range(“ D”&Row)。Value= X;该行将存储X的值,并将传递到范围D1至D50
循环6(用STEP-2反向填充第二个单元格)
在上面的For循环示例中,我们可以使用Step和order来查看For循环是向前还是向后工作。
Sub Loop6() ' Fills every second cell from E1:E100 with values of X' --- Comment ' In this case X decreases by 2' --- Comment Dim X As Integer, Row As Integer Row = 1 For X = 100 To 0 Step -2 Range("E" & Row).Value = X Row = Row + 2 Next X End Sub
代码说明:
我们已将X&Row指定为整数Row包含值1对于X = 100到0,步骤-2;这将从100开始,在X中减2,直到0 Range(“ E”&Row).Value = X;该行将存储X的值,并将传递到范围E1至E100
循环7(对于具有IF条件的循环:从特定单元格开始填充单元格)这将用值11填充单元格F11中的单元格,直到X满足IF条件
Sub Loop7() ' Starts to fill cells F11:F100 with values of X' --- Comment ' This will exit from the loop after 50' --- Comment Dim X As Integer For X = 11 To 100 Range("F" & X).Value = X If X = 50 Then MsgBox ("Bye Bye") Exit For End If Next X End Sub
代码说明:
我们已将X分配为整数,对于X = 11到100;从11开始,以X递增1,直到条件满足* Range(“ F”&X).Value = X;该行将存储X的值,并将传递到范围F11,直到条件满足
-
在单元格F50中输入值50后,将显示以下消息框
如果您喜欢我们的博客,请在Facebook上与您的朋友分享。您也可以在Twitter和Facebook上关注我们。
我们很高兴收到您的来信,请让我们知道我们如何改进,补充或创新我们的工作,并为您做得更好。写信给我们[email protected]