ExcelVBA解读(24):有条件的循环(1)—DoWhile循环
在上⼀篇⽂章中,我们介绍的For-Next循环,能够按照指定的数值进⾏有限次的循环。下⾯介
绍在满⾜指定的条件时才执⾏相应代码块的循环结构,先来看看Do While循环。
按照惯例,先举⼀个例⼦。下⾯的代码从当前单元格开始,逐⾏显⽰单元格的内容,直到碰到
空单元格为⽌。如果第⼀个单元格就为空,则不会执⾏循环。
Sub DoWhile0()
Dim i As Integer '声明变量
i = 1 '初始化变量
Do While Cells(i, 1).Value <> ''
MsgBox '单元格A' & i & '的内容为:' & Cells(i, 1).Value
i = i 1
Loop
End Sub
例如,在单元格区域A1:A5中依次输⼊数字1、2、3、4、5,将当前单元格置于A1单
元格(如图1所⽰),运⾏上⾯的代码,将依次显⽰数字1、2、3、4、5。
图1
Do While循环的基本语法结构如下:
Do [While 条件语句]
[语句块]
[Exit Do]
[语句块]
Loop
或者:
Do
[语句块]
[Exit Do]
[语句块]
Loop [While 条件语句]
说明:
按照惯例,⽅括号中的内容表⽰可选项。
条件语句可以放在循环的开始处或者结尾处。如果放在开始处,那么先评估条件,满⾜条件要
求,就执⾏循环⾥⾯的语句;这种情况下,当始终不满⾜条件时,就有可能⼀次也不会执⾏循
环⾥⾯的语句。如果放在结尾处,则⾄少会执⾏⼀次循环⾥⾯的语句。
Exit Do语句表⽰提前退出循环。
将条件放置在结尾处,前⾯的⽰例代码修改如下:
Sub DoWhile01()
Dim i As Integer '声明变量
i = 1 '初始化变量
Do
MsgBox '单元格A' & i & '的内容为:' & Cells(i, 1).Value
i = i 1
Loop While Cells(i, 1).Value <> ''
End Sub
此时,如果单元格A1为空,也会显⽰⼀条消息框,然后退出循环。
⽤框图分别表⽰Do While循环的两种语法形式如下:
如果熟悉了Excel中的常⽤对象及其属性,也可以将上⾯的代码修改如下,实现相同的结果。
Sub DoWhile1()
Do While ActiveCell.Value <> ''
MsgBox '当前单元格的内容为:' & ActiveCell.Value
ActiveCell.Offset(1, 0).Activate
Loop
End Sub
其中,Offset属性表⽰下移⼀个单元格,即当前单元格下⾯的单元格。(单元格的常⽤属性将在后续⽂章中详细介绍)
将条件放置在结尾处,前⾯的⽰例代码修改如下:
Sub DoWhile2()
Do
MsgBox '当前单元格的内容为:' & ActiveCell.Value
ActiveCell.Offset(1, 0).Activate
Loop While ActiveCell.Value <> ''
while语句怎么退出End Sub
下⾯,为更深⼊理解Do While循环,我们来改写上⼀篇中⽤来说明For-Next循环的⽰例。
⽰例1:如果想要在⼯作表单元格区域A1:A10中依次填写数字1⾄10,也可以使⽤下⾯的包含Do While循环的代码:
Sub DoWhile3()
Dim i As Integer '声明变量
i = 1 '给变量赋初始值
'循环
Do While i <= 10
Cells(i, 1).Value = i
i = i 1
Loop
End Sub
注意,与For-Next循环不同的是,在进⼊循环之前,需要先给变量i赋初始值。在循环中,还需要能够增加变量的值。
⽰例2:下⾯的代码使⽤Do While循环求1⾄100的和,并显⽰结果。
Sub DoWhile4()
'声明变量
Dim i As Integer
Dim sum As Integer
'给变量赋初值
i = 1
sum = 0
'循环并显⽰结果
Do While i <= 100
sum = sum i
i = i 1
Loop
MsgBox '1⾄100的和为:' & sum
End Sub
⽰例3:下⾯的代码使⽤Do While循环求1⾄100之间的偶数和并显⽰结果。
Sub DoWhile5()
'声明变量
Dim i As Integer
Dim sum As Integer
'给变量赋初值
i = 1
sum = 0
'循环并显⽰结果
Do While i <= 100
If (i Mod 2 = 0) Then
sum = sum i
End If
i = i 1
Loop
MsgBox '1⾄100的和为:' & sum
End Sub
在编写程序时,我们可以使⽤多种⽅法实现想要的结果,您可以根据具体情况选择实现⽅式,这也是编程的⼀⼤美妙之处。
--------------------------------------
通过下列⽅式可以更快地了解完美Excel更新:
关注《完美Excel》公众账号:
⽅法1—点击右上⾓的按钮,选择“查看”,点击关注
⽅法2—在添加朋友中搜索excelperfect
⽅法3—扫⼀扫下⾯⽹址中的⼆维码
lperfect/wordpress/wp-content/uploads/2014/02/excelperfect.jpg
新浪微博名:完美Excel
个⼈博客:lperfect
⽂章转载请注明出处!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。