龙空技术网

Excel VBA Do While 循环基本方法

阿杰漫步 586

前言:

今天朋友们对“c语言do while循环用法”大约比较关怀,我们都需要分析一些“c语言do while循环用法”的相关内容。那么小编也在网络上收集了一些关于“c语言do while循环用法””的相关文章,希望我们能喜欢,你们快快来了解一下吧!

之前介绍了For循环的用法并且用了案例做了演示,今天讲一下另一种循环语句,Do While...Loop,就像英文表达的意思一样,While循环表示 “当...条件满足时 ”去执行下一步操作,直到条件不满足为止,退出循环。

在Excel VBA里,所有能用For循环完成的,Do While循环一样能操作成功。还是用上一篇文章使用过的案例和代码,改写成Do While循环来执行看看写法上有什么区别。

案例:批量提取身份证出生日期

代码:

Sub 循环方式()Dim i As Integer, r As Range    For i = 2 To Range("A65536").End(xlUp).Row    Set r = Range("A" & i)    Range("B" & i) = DateSerial(Mid(r, 7, 4), Mid(r, 11, 2), Mid(r, 13, 2))    Next i    Set r = NothingEnd Sub

以上是For循环的写法,还可以写成Do While循环,执行完代码后结果是一样的:

Sub ZZZ()Dim i As Integer    i = 2    Do While Range("A" & i) <> ""    Range("B" & i) = DateSerial(Mid(Range("A" & i), 7, 4), Mid(Range("A" & i), 11, 2), Mid(Range("A" & i), 13, 2))    i = i + 1    LoopEnd Sub

由于身份证是从第二行开始提取的,所以初始变量为2,i=2,之后的Do While...loop的中间部分就是循环体,循环条件是Range("A"& i)单元格不能是空白单元格,所以执行到A23单元格时由于A23单元格为空白单元格不满足条件了结束了循环,程序结束。

最后注意,一定要写上i=i+1,否则就是永远写入第2行变成了死循环。

标签: #c语言do while循环用法