ad

跟着一起学《Excel VBA跟卢子一起学 早做完 不加班 基础入门版》_3.3.3 条件循环

网友投稿 131 2023-11-07

【摘要】 本书摘自《Excel VBA跟卢子一起学 早做完 不加班 基础入门版》一书中第3章,第3节,韩小良著。

3.3.3 条件循环:Do…Loop. 语句

皮蛋:对象循环我算有些许明白了,待我慢慢消化它。来吧,我等着另外一个类型的循环。

跟着一起学《Excel VBA跟卢子一起学 早做完 不加班 基础入门版》_3.3.3 条件循环

无言:这个循环会比较“烦”,你要好好接招了。

认识了For…Next 和 For Each…Next 循环语句之后,来认识一下最后的循环语句了。

无言:为什么把它放到最后讲呢,因为它的多变性。

条件循环语句,该语句相比前两种语句较难理解,因为虽然只是 Do…Loop 这个语句,但 是它可分为2大类型4种用法,只有理解了这4种用法的区别才能更好地运用它。

无言:咱们先来看下2种类型的语法结构。

1. While 和 Until 的作用

Do…Loop 语句和IF…Then…Else 、For…Next,For Each…Next 语句一样都是必要的外壳, 书写时都必须保有这个外壳。在图3-19中有两个相同的黑色字,黑色字中的While 和 Until 这 两个参数为 Do…Loop 语句的特色,While 和 Until 参数分别用于指定条件的执行方式。

? 皮 蛋:条件的执行方式?

当在Do 后面紧接着While 时,说明condition 参数的表达式,必须要满足才能执行 Do循 环语句——即表达式的结果为 True, 则执行 Do的中间语句。如下示例:

Num=10

Do While Num<20

Cells(1,"A")=Num Loop

用户输入的随机数

'当Num 变量的数值小于20,结果返回 True, 就执行Do 中间语句

'上述表达式为True时,将Num 的值输入到A1 单元格,否则将不执行该操作

上面示例中Num 变量的值如果小于20,则满足While Num<20的判断,则执行Do 循环 中的中间语句,将Num 值写入A₁ 单元格。

当 Do 后面紧接着Until时,则表明了condition参数的表达式结果为 False才可执行 Do 的 中间语句,如下示例:

Num=10

Do Until Num<20 就执行内部语句 Cells(1,"A")=Num Loop

'用户输入的随机数

'当Num 变量的数值小于20,结果返回True, 不执行 Do 内部语句,若为 False

'上述表达式为True 时,将Num的值输入到A₁ 单元格,否则将不执行该操作

上面示例由于使用 Until 语法,当 Num 为10,比预定的20小,表达式结果范围了True,

由于Until的只能结果为 False 结果时,才会在A1 单元格输入Num 的值。

无言:While 和Until就像我们说的反义词,当使用While语法时,只有表达式结果为True的时 候才能执行内部语句, Until则刚好相反,只有当表达式结果为False时,才能执行内部语句。

? 皮蛋:有些风中凌乱的感觉。

无言:咱们还是结合语法例题来做吧。

2.Do…Loop 的第1种分类

前面说了Do…Loop分为2大类,4种用法,现在说下4种用法的关键点是什么。

Do…Loop分为2大类主要是因为如图3-19所示的2个语法结构的差别: While 和 Until, 2个执行条件方式的语句放置的位置不同。

第1类将While 和 Until放置在 Do关键字之后,接着是中间语句,最后才是Loop; 第 2 类则是把While 和 Until放置到Loop 关键词之后,而在 Do 和Loop外壳之间书写中间语句。

皮蛋:那它们最大的区别是什么呢,不会就这个吧?

无言: 肯定不是啦。

第1种分类是先判断表达式的结果,如果返回的布尔值满足While 或 Until语句的判断方 式则执行Do的中间语句:例如上面的示例中先比较Num 是否小于20,如果满足了Do语句判 断方式就执行将 Num 的值直接写入A1 单元格内。

第2种分类则是先将Num 变量写入单元格中,再判断这个Num 的值是否满足While 或 Until 语句的判断方式,满足后再继续执行 Do 循环,不满足时就退出循环。此时单元格中将出 现 Num 的值,而第1种则不会,只有当条件判断满足后才将Num 写入A1 单元格。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《深入理解 Java 虚拟机 JVM 高级特性与最佳实践(第3版)》_求知之路漫漫_3.6 低延迟垃圾收集器
下一篇:跟着一起学《Excel VBA跟卢子一起学 早做完 不加班 基础入门版》_1.1.1 一键拆分工作表
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×