VBA 程序循环结构

VBA 中,循环结构用于多次重复执行同一段代码。重复次数通过特定数字或特定条件控制。

通过控制循环过程中特定变量,循环结构可执行复杂的重复任务。

循环结构的执行流程可简单的表示如下:

本文目录 隐藏
VBA 循环结构类型
For 循环

For … Next 循环
For Each 循环
Exit For 语句
Do While 循环

Do While … Loop 循环
Do … Loop While 循环
Exit Do 语句
Do Until 循环

Do Until … Loop 循环
Do … Loop Until 循环
总结

VBA 循环结构类型

VBA 中循环结构有 3 种类型,它们是:

  • For 循环

  • Do While 循环

  • Do Until 循环

下面分别介绍 3 种类型循环结构语法以及用法。

For 循环

For 循环是最常用的循环类型,它有两种形式:

  • For … Next 循环

  • For Each 循环

For … Next 循环

使用 For ... Next 循环可以按指定次数,循环执行一段代码。For 循环使用一个数字变量,从初始值开始,每循环一次,变量值增加或减小,直到变量的值等于指定的结束值时,循环结束。

For ... Next 循环语法如下:

For [变量] = [初始值] To [结束值] Step [步长]'这里是循环执行的语句Next

其中:

  • [变量] 是一个数字类型变量,可在循环执行的语句里使用。

  • [初始值][结束值] 是给定的值;

  • [步长] 是每次循环时,变量的增量。如果为正值,变量增大;如果为负值,变量减小。

下面看一个实际的例子,求 1 至 10 数字的累积和。

Sub MyCode()Dim i As IntegerDim sum As Integer    For i = 1 To 10 Step 1sum = sum + iNextEnd Sub

可以看到,For 循环使用 i 变量,循环 10 次,i 的值从 1 到 10 变化。

值得注意的是,For 循环的 Step 值如果是 1,则 Step 关键词可省略。上述过程循环部分可写成如下方式:

For i = 1 To 10sum = sum + iNext

For Each 循环

For Each 循环用于逐一遍历一个数据集合中的所有元素。数据集合包括数组、Excel 对象集合、字典等。

For Each 循环不需要一个数字变量,但是需要与数据集合中的元素相同的数据类型变量。其基本语法如下:

For Each [元素] In [元素集合]'循环执行的代码Next [元素]

其中,

  • [元素] 是与集合中的元素相同类型的变量,该变量可在循环代码中使用。

  • [元素集合]是包括多个元素的集合。

下面看一个实际例子,循环打印出工作簿中所有工作表的名称。

Sub MyCode()Dim sh As Worksheet For Each sh In Worksheets Debug.Print sh.NameNext shEnd Sub

sh 变量就是元素变量,Worksheets 是工作簿中所有工作表的集合。

Exit For 语句

Exit For 语句用于跳出循环过程,一般在提前结束循环时使用,均适用于 For Next 循环和 For Each 循环。

看一个实际的例子,求 1 – 10 数字的和时,当和大于 30 就停止循环。

Sub MyCode()Dim i As IntegerDim sum As Integer    For i = 1 To 10
        sum = sum + i        If sum > 30 ThenExit ForEnd IfNextEnd Sub

在这段代码中,sum 变量大于 30 时,循环就停止。

Do While 循环

Do While 循环用于满足指定条件时循环执行一段代码的情形。循环的指定条件在 While 关键词后书写。

Do While 循环也有两种形式:

  • Do While … Loop 循环

  • Do … Loop While 循环

Do While … Loop 循环

Do While … Loop 循环,根据 While 关键词后的条件表达式的值,真时执行,假时停止执行。基本语法如下:

Do While [条件表达式]'循环执行的代码Loop

其中,只要 [条件表达式] 为真,将一直循环执行。[条件表达式] 一旦为假,则停止循环,程序执行 Loop 关键词后的代码。

看一个实际的例子,还是求 1- 10 累积和。

Sub MyCode()Dim i As IntegerDim sum As Integer

    i = 1Do While i <= 10sum = sum + i
        i = i + 1LoopEnd Sub

i 变量的初始值是 1,根据 While 后的条件,只要 i 变量小于等于 10,后续的代码就可以一直循环执行。

这里为了演示使用了 Do While 循环,实际情况下,这种求和问题,使用 For 循环更简洁。

Do … Loop While 循环

与上一种 Do 循环不同的是,Do ... Loop While循环至少循环执行代码一次后,再判断条件表达式的值。基本语法如下:

Do'循环执行的代码Loop While [条件表达式]

其中,While 和条件表达式写在 Loop 关键词后。

Exit Do 语句

Exit For 语句类似,Exit Do 语句用于跳出 Do While 循环。

Do Until 循环

Do Until 循环与 Do While 循环类似。不同点在于,Do While 在条件表达式为真时,继续执行循环;而 Do Until 在条件表达式为真时,停止执行循环。

Do Until 循环也有两种形式:

  • Do Until … Loop 循环

  • Do … Loop Until 循环

Do Until … Loop 循环

循环开始前判断 Until 后条件表达式的值,如果是真,停止循环;如果是假,继续执行循环。基本语法如下:

Do Until [条件表达式]'循环执行的代码Loop

Do … Loop Until 循环

先运行一次,再判断 Until 后条件表达式的值,如果是真,停止循环;如果是假,继续执行循环。基本语法如下:

Do'循环执行的代码Loop Until [条件表达式]

其他使用方法与 Do While 循环一致。

总结

本篇文章我们学习了 VBA 中程序循环结构基础,以及多种循环结构形式。包括子类在内,VBA 中常使用的循环结构包括 6 种,它们是:

循环结构 说明
For … Next 循环 按指定次数循环执行
For Each 循环 逐一遍历数据集合中的每一个元素
Do While … Loop 循环 当条件为真时,循环执行
Do … Loop While 循环 当条件为真时,循环执行。无论条件真假,至少运行一次
Do Until … Loop 循环 直到条件为真时,停止执行
Do … Loop Until 循环 直到条件为真时,停止执行。无论条件真假,至少运行一次

此外,学习了两种跳出循环的语句,它们是:

跳出语句 说明
Exit For 跳出 For 循环
Exit Do 跳出 Do While/Until 循环
转载注明:文章转载自「懒人Excel - lanrenexcel.com
本文标题:VBA 程序循环结构 
(0)

相关推荐

  • Excel VBA学习笔记(六):VBA中的循环语句

    介绍四种循环语句的语法: 一.For 循环语法: For 变量=数值 to 数值 Step 步值 "需要执行的语句' Next 变量 Next 后面的"变量名",经常被省 ...

  • VBA基本语法之For循环结构,有什么含义,具体该怎么使用?

    在实际的工作当中我们要对excel表格的数据进行大量的重复操作,这时我们就需要For Next结构形式来处理,这样就把复杂的重复问题给解决了. 先看一下For Next的语法结构? For 循环变量= ...

  • VBA 程序结构入门

    从本篇开始,我们进入 VBA 语法的另外一个重要概念,程序结构. 上一章学习的变量.数据类型.运算符等概念,是 VBA 中'静态'的部分.相对的,程序结构是 VBA 中 '动态' 的部分.学习完程序结 ...

  • Excel VBA程序的编写

    摘要:本文通过代码演示,介绍如何从Active Directory中检索信息并将信息显示在带格式的Excel工作表中. (注:本文摘自Microsoft Corporation 技术人员Greg St ...

  • 【原创教程】houdini17 vop和vex条件循环结构体整体介绍

    --  微资讯 · 微课程  -- 利用零碎时间,走上超神之路! 教程编号 CGhunter_houdini_04_006_001 结构体(vex字典卷第6章第一节结构体概述) 教程导读 第六章我们进 ...

  • python循环结构

    Python中没有do...while循环,很棒吧! for循环与其他语言中也不太一样,要更简单一些. 请往下看吧...... 1.while语句 用来处理循环语句,其形式如下: while 判断条件 ...

  • Java循环结构 while、do...while、for 用法与区别总结

    循环结构 为什么要使用循环?解决编码复杂度. 什么是循环?重复做同一件事情或者做同样的事情. While循环 While(布尔表达式){ 语句或语句块; } while循环语句的执行过程如下: 首先判 ...

  • 今日份编程知识分享,C++的循环结构!

    循环结构 所谓的循环结构简单来说就是不停的重复一个过程,通过一个判断条件来决定是否退出循环.循环可谓是真正开始体现计算机强大处理能力的时候,例如时钟的运行.游戏的人物移动.动态的屏幕显示等等,这些都是 ...

  • do while 循环结构

    ★ do while 循环结构形式 do {          语句; } while (表达式); ★ do while 循环结构流程 首先执行语句(第 1 次): 之后求解表达式的值 如果值是 0 ...

  • 分享:一个用于阅卷统计的Excel VBA程序(附悬赏)

    在精准教学的理念下,配合具有特定理念的试题,采用数据化精准评价有助于精准分析学生在答题中的表现,发现他们在特定知识点和能力点方面存在的问题. 现在很多地方已经配置了机读卡阅卷设备,能够在阅卷后提供大数 ...