精华内容
下载资源
问答
  • 今日给大家讲VBA循环,这个是非常基础的知识,在VBA的相关内容中我也一直在用,也在不断的讲解。今日专门作为一个专题给大家详细地说明,中间也有一些有意思的小例子,供大家玩耍。一FOR NEXT语...

    首先欢迎各位朋友来到这个平台,分享自己的成果,福不唐捐,总会有所收获。无论是EXCEL的操作,还是VBA的操作,都会对大家有所帮助。知识的讲解过程中,希望大家得到哪怕是一点点的收获,我的时间就是有意义的。

    今日给大家讲VBA的循环,这个是非常基础的知识,在VBA的相关内容中我也一直在用,也在不断的讲解。今日专门作为一个专题给大家详细地说明,中间也有一些有意思的小例子,供大家玩耍。

    一FOR NEXT语句这种循环是以指定的次数来重复执行一组语句

    这个结构一般是这样的:

    for counter= start to end [ step步长值]

    [statements]

    [exit for]

    [statements]

    Next counter

    具体解释一下,初始值指的是循环开始的值,结束值指的是循环结束的值,实质上就是counter值的一个判断,如果counter值在起始值和结束值之间,那么进入循环语句,然后counter值每运行到next语句后,会自动加一个步长值,直至counter值超出了初始值到结束值这个范围,循环才会结束。这里要说明一下,“step步长值”往往是省略掉的,省略掉的话,步长取默认值为1。下面将以一段小实例来具体说明这个结构的用法。

    实例:在sheet1工作表中一次输出1到100这些数,显示在第一列中。

    程序:

    Sub kk()

    Sheets(“sheet1”).select

    Dim i As Integer

    For i = 1 To 100

    Cells(i, 1) = i

    Next

    End Sub

    二for each …NEXT语句这种循环主要功能是对一个数组或一个对象进行操作,让所用元素执行一次循环语句

    For each element in group

    [statements]

    [exit for]

    [statements]

    Nexr element

    具体解释一下,在for next循环中主要是数值变量,而for each …NEXT这种结构是对象变量。什么意思呢?each……in指的是在这个对象集合里面,一次将每一个对象都遍历一边。同样的道理,执行到next后对象自动指到下一个。具体我们来看一下下面的一个实例吧。

    实例:给一个数据区域a1:d5内的所有单元格随机赋值。

    分析:显然数据区域就是一个对象集合,单元格就是这个集合里面的对象。

    程序:

    Sub JJ()

    Sheets("SHeet1").Select

    Dim i As Integer

    For Each c In Range("a1:d5")

    c.Value = Rnd

    Next

    End Sub

    三DO loop语句在条件为true时,重复执行命令区域

    DO WHILE CONDITION

    [statements]

    [exit do]

    [statements]

    LOOP

    或者:

    DO

    [statements]

    [exit do]

    [statements]

    LOOP WHILE CONDITION

    备注:上面的while可以用until代替。

    VBA中如果事先不知道将重复多少次循环,只是知道判断的条件,那么使用Do...Loop语句。Do...Loop语句重复执行某段代码直到条件是true或条件变成true。重复执行代码直到条件是true使用While关键字来检查Do... Loop语句的条件。

    举例:我们用Do While语句来解决求1—100的自然数的和的问题:

    Sub my_sum()

    Dim Lsum As Long, i As Long

    i = 1

    Do While i

    Lsum = Lsum + i

    i= i + 1

    Loop

    MsgBox "1到100的自然数和为:" & Lsum

    End Sub

    好了,到这里把三个循环体都做了讲解,上面也讲到了三个实例,截图如下,我都做了测试,可以使用。

    今日内容回向:

    1 VBA中三种循环体是什么?

    2三种循环的区别和联系是什么?

    3如果不知将循环多少次?用哪个循环体?

    4试着把第一个例子改成第三个的模式。

    分享成果,随喜正能量

    展开全文
  • VBA-循环语句之Do...Loop

    千次阅读 2018-11-08 16:35:22
    Loop 循环语句,直到满足某个条件 Sub DoLoop基本示例() Dim a% Do a = a + 1 If a > 10 Then MsgBox a & "终于大于10" Exit Do End If Loop End Sub 实例应用:将大于...

    声明:笔记来源于我要自学网-《Excel VBA基础教程》-授课讲师:曾贤志


    Do ... Loop 循环语句,直到满足某个条件

    Sub DoLoop基本示例()
    Dim a%
    Do
    a = a + 1
        If a > 10 Then
        MsgBox a & "终于大于10"
        Exit Do
        End If
    Loop
    End Sub

    实例应用:将大于等于90分的勾选出来

    Sub 判断成绩并打勾()
    Dim rs%
    rs = 1
    Do
        rs = rs + 1
            If rs > 10 Then
                Exit Do '这里也可以写做Exit sub,因为已经完成了所有判断,直接就退出整个子过程
            Else
                If Cells(rs, 2) >= 90 Then Cells(rs, 3) = "√"
            End If
    Loop
    End Sub
    Sub 循环语句while() '该代码比上面这个代码更简洁
    Dim rs%
    rs = 2
    Do While Cells(rs, 2) <> "" '当单元格不等于空时,则循环
        If Cells(rs, 2) >= 90 Then Cells(rs, 3) = "√"
        rs = rs + 1
    Loop '循环
    End Sub
    Sub 循环语句DOLOOP2()
    Dim rs%
    rs = 2
    Do Until Cells(rs, 2) = "" '直到单元格为空时,才结束
        If Cells(rs, 2) >= 90 Then Cells(rs, 3) = "√"
        rs = rs + 1
    Loop '循环
    End Sub

    实例应用:进行隔行填色

    Sub 隔行填色实例应用()
        Dim rs%
        rs = 2
        Do Until Sheet1.Range("a" & rs) = ""
        Sheet1.Range("a" & rs & ":g" & rs).Interior.ColorIndex = 7
        rs = rs + 2
        Loop
    End Sub

    while与until不但可以放在Do后面,也可以放在loop后面
    事实上有时在循环的最后一行进行判断,更具有意义

    Sub doloop的最后判断循环()
    Dim pa$, i!
    Do
    i = i + 1   '作用是对输入次数做个累加
    If i > 3 Then Exit Do   '当输入错误超出3次,就关闭了窗口,退出了Do循环
        pa = InputBox("请输入密码")   '在输入框键入密码;先键入密码,再做判断
    Loop Until pa = "123" '判断键入的密码是不是123,如果是就退出循环,不是则继续循环
    End Sub

    ***Do...Loop语法小结***
    Do [{While | Until} 表达式]
    [执行的一条或多条语句]
    [Exit Do]
    [执行的一条或多条语句]
    Loop
    ---------------------------------------------------------
    while:当这个条件为True时就 循环
    until:直到这个条件为True时就 跳出循环
    ---------------------------------------------------------
    或者可以使用下面这种语法:
    Do
    [执行的一条或多条语句]
    [Exit Do]
    [执行的一条或多条语句]
    Loop [{While | Until}表达式]
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------
    用Do...Loop循环要注意的几点:
         1,While与Until是放在Do后面还是Loop后面,取决于是先判断再循环,还是先循环再判断。
         2,可以在Do...Loop中的任何位置放置任意个数的 Exit Do 语句,随时跳出 Do...Loop 循环。
         3,Do...Loop + If...Then + Exit Do 通常结合使用。
         4,如果Exit Do 使用在嵌套的 Do...Loop 语句中,则 Exit Do 会将控制权转移到 Exit Do 所在位置的外层循环。

    Sub 第3点例子实例()
    Dim a%
    Do
    a = a + 1
        If a > 5 Then
            MsgBox a & "终于大于5"
            Exit Do
        End If
    Loop
    End Sub
    Sub 第4点例子实例() '注意这是一个死循环,按F8运行(中止死循环:Ctrl+暂停键)
    Do
    b = b + 1
        Do
            a = a + 1
            If a > 3 Then MsgBox "即将跳出内层循环": Exit Do
        Loop
    MsgBox "即将进行外层循环"
    Loop
    End Sub

     

    展开全文
  • Sub doloop计算金额() Dim k% k = 1 Do k = k + 1 //excel表第8个sheet ;判断当前行列单元格是否为空;...loop循环; If Worksheets(8).Cells(k, "a") = "" Then Exit Do Else //计算c列单元格的金额 Worksh...

    Sub doloop计算金额()
    Dim k%
    k = 1
    Do
        k = k + 1

    //excel表第8个sheet  ;判断当前行列单元格是否为空;如果为空退出do。。。loop循环;
        If Worksheets(8).Cells(k, "a") = "" Then
            Exit Do
        Else

    //计算c列单元格的金额
            Worksheets(8).Cells(k, "c") = Worksheets(8).Cells(k, "a") * Worksheets(8).Cells(k, "b")
        End If
    Loop

    End Sub
     

    展开全文
  • VBA-循环语句之For Each..Next

    千次阅读 2018-11-08 17:29:30
    声明:笔记来源于我要自学网-《Excel VBA基础教程》-授课讲师:曾贤志 当需要处理集合成员时,一般会用 For Each...Next,实际上就是处理对象 实例应用:判断是否等于“A1”是就填充底色为红色 Sub foreachnext...

    声明:笔记来源于我要自学网-《Excel VBA基础教程》-授课讲师:曾贤志


    当需要处理集合成员时,一般会用 For Each...Next,实际上就是处理对象

    实例应用:判断是否等于“A1”是就填充底色为红色

    Sub foreachnext循环1()
    Dim rng As Range, n!
    For Each rng In Sheet1.Range("a2:a10")  '取a2:a10中的每个单元格
        If rng = "A1" Then rng.Interior.ColorIndex = 3  '判断取的每个单元格值是否等于A1,等于就给单元格底色填充为3(红色)
    Next
    End Sub

    实例应用:取出当前工作簿的工作表名

    Sub foreachnext循环2()
    Dim wsh As Worksheet, n As Byte, m As String
    For Each wsh In Worksheets '取当前工作表集合中的每个成员
        n = n + 1
        m = wsh.Name    '最后这两行代码,可以合成:Sheet1.Cells(n, 3) =wsh.Name
        Sheet1.Cells(n, 3) = m
    Next
    End Sub

    For...Next也是循环语句,与Do...Loop不同之处在于,For Next 有一个内置的计数器

    Sub fornext循环2()
    Dim i!, j!
        For i = 1 To 100    '可在后面加上 step 1 即步长值(默认就是step,所以可以忽略不写)
        j = j + i
        Next
    MsgBox j
    End Sub

    实例应用:对D列进行金额计算

    Sub fornext循环实例()
    Dim rng!
    For rng = 2 To 16   '从2行循环到16行
        Sheet1.Cells(rng, 4) = Sheet1.Cells(rng, 2) * Sheet1.Cells(rng, 3)
    Next
    End Sub

    ***For...Next小结与实例***
    ----------------------------------------------------------------------------------------------------------------------------------
    For...Next 语句
    以指定次数来重复执行一组语句
    语法:
    For 计数变量 = 初始值 To 终止值 [Step 步长值]
    [执行的一条或多条语句]
    [Exit For]
    [执行的一条或多条语句]
    Next [计数变量]可以忽略不写
    --------------------------------------------------------------------------

         1.循环中可以在任何位置放置任意一个Exit For 语句,随时退出循环。
         2.Exit For 与 If...Then 经常一起使用,目的是:找到符合条件后,跳出循环,而不必再进行不必要的循环。

    例子:根据表格中的数据,统计出2班的人数

    Sub test()
    For i = 1 To 16
        If Cells(i, 1) = "2班" Then Exit For '找到2班的起始位置
    Next i
    For j = 1 To 16
        If Cells(j, 1) = "3班" Then Exit For '找到3班起始位置
    Next j
    MsgBox "2班的人数为:" & j - i  '3班起始位置行号-2班起始位置行号
    End Sub

         3.可以将一个 For...Next 循环放置在另一个 For...Next 循环中,组成嵌套循环。
               For i = 1 To 10
                   For j = 1 To 10
                       For k = 1 To 10
                       .........
                       Next k
                   Next j
               Next i

    例子:理解计数变量的运行

    Sub 理解计数变量的运行()
        For i = 1 To 2
            For j = 1 To 3
                k = "外层的第" & i & "次的,内层的第" & j & "次"
            Next j
        Next i
    End Sub

    实例应用:制作九九乘法表(如图)

    Sub 九九乘法表制作()
    Dim a!, b!
    For a = 1 To 9
        For b = 1 To 9
            If b > a Then
                Sheet1.Cells(a, b) = ""
            Else
                Sheet1.Cells(a, b) = a & "x" & b & "=" & a * b
            End If
        Next
    Next
    End Sub

     

     

    展开全文
  • Excel VBA运用,删除行,循环For each next,rows.count计算,添加指定数据等, 打开Excel启用宏,然后按快捷键Ctrl+E
  • EXCEL VBA应用开发与实例精讲完整版

    热门讨论 2012-04-16 14:17:15
    2.7 循环语句 2.8 用于退出或暂停程序的语句 2.9 过程和函数 2.10 小结 第3章 使用自带函数 3.1 单元格的引用 3.2 函数使用入门 3.3 函数应用实例 3.4 外部引用 3.5 函数的功能简介 3.6 使用自定义函数 ...
  • If...Then语句和For Each…Next语句:检查是否有某按钮 If...Then语句:将不为零的单元格设置为零 If...Then...ElseIf ...Then语句:判断优惠价格 If...Then...ElseIf ...Then语句:保护有计算公式的单元格 嵌套...
  • 循环,书签(Bookmarks)中的循环等等,函数的应用、选择性分支语句、判断语句、 错误处理、类模块的使用、用户窗体的使用、数组的应用、Automation等等,不一一 列举,读者可根据自身情况,逐一进行渐进式学习。 ...
  • EXCEL VBA应用开发与实例精讲

    热门讨论 2009-05-06 15:34:29
    2.7 循环语句 2.8 用于退出或暂停程序的语句 2.9 过程和函数 2.10 小结 第3章 使用自带函数 3.1 单元格的引用 3.2 函数使用入门 3.3 函数应用实例 3.4 外部引用 3.5 函数的功能简介 3.6 使用自定义函数 3.7 小结 第4...
  • 大家好,我们今日讲解“VBA信息获取与处理”教程中第十七个专题“文件及文件夹信息的获取及操作”的第一节“判断文件及文件夹是否存在”,这个专题是非常实用的知识点,希望大家能掌握利用。教程会提供配套的程序...
  • while语句 while cells(i,2) <> “” 可用来检查内容是否为空,来标记是否到尾巴了 Sub highlightquick() Dim i As Integer i = 2 While Cells(i, 2) <> "" '判断是否为空 If Cells(i, 2) > 500 ...
  • EXCEL VBA应用开发与实例精讲4/4

    热门讨论 2009-05-06 15:38:12
    2.7 循环语句 2.8 用于退出或暂停程序的语句 2.9 过程和函数 2.10 小结 第3章 使用自带函数 3.1 单元格的引用 3.2 函数使用入门 3.3 函数应用实例 3.4 外部引用 3.5 函数的功能简介 3.6 使用自定义函数 3.7 小结 第4...
  • 暂停语句、结束语句。 1、Stop暂停语句:Stop语句不带有任何参数,该语句可以被放置在过程的任何位置。使用该语句相当于在程序代码的相应位置设置了断点,当程序运行到该处时,程序将暂时挂起,停止执行。该语句...
  • Excel VBA 基础部分 一、定义语句 '定义变量和分配存储空间 Dim [ WithEvents ] varname [ ( [ subscripts ] ) ] [ As [ New ] type ] . . . 部分 说明 withEvents 可选。该关键字指定varname是对象变量,...
  • 学生编号" 'Debug.Print SQL cnn.Execute SQL cnn.Close Set cnn = Nothing End Sub 上面SQL语句的结构是"update 表1 a,表2 b set a.字段=b.字段 where a.主键=b.主键"。代码中的SQL翻译过来就是“update 学生信息 a...
  • 首先,想看详细教程请转向:Excel VBA...这个语法在c++中可以类比为main,大部分语句都填充在这里。 定义变量: Dim sh As Worksheet '定义一个表格 Set sh = Worksheets("sheet1") '此表格名是实际表格中的...
  • if语句和goto语句搭配使用可以构造循环,if语句作为循环的条件判断,goto用来跳转以反复执行某些语句循环体)以达到循环执行这些语句的目的。 这边放一个简单程序作为例子: 运用goto、if计算1+2+3+...+100的值...
  • EXCEL VBA应用开发与实例精讲1/4

    热门讨论 2009-05-03 23:30:38
    2.7 循环语句 2.8 用于退出或暂停程序的语句 2.9 过程和函数 2.10 小结 第3章 使用自带函数 3.1 单元格的引用 3.2 函数使用入门 3.3 函数应用实例 3.4 外部引用 3.5 函数的功能简介 3.6 使用自定义函数 3.7 小结 第4...
  • 2.7 循环语句 2.8 用于退出或暂停程序的语句 2.9 过程和函数 2.10 小结 第3章 使用自带函数 3.1 单元格的引用 3.2 函数使用入门 3.3 函数应用实例 3.4 外部引用 3.5 函数的功能简介 3.6 使用自定义函数 3.7 小结 第4...
  • 可以把下面的代码直接复制到VBA编辑器里测试Sub 生成随机手机号()r = Selection.Row ‘获取当前选择的单元格的行号,如果选择的是一个区域则返回左上角第一个单元格的行号col = Selection.Column '获取当前选择的...
  • 纲举目张 说明 关键技术点:... Dir函数的特点是,每调用一次仅返回一个文件名,所以要采用循环语句,当遍历了所有文件后,再调用Dir函数则返回空字符串。 请点击下载本文附件 如有意见建议或使用中出现Bug留言,谢谢!
  • 1.用for语句计算 2.用do-while语句 3.用while语句 4.用递归算法 public classjiecheng{public static void main(String args[]){ Scanner input = new Scanner(System.... //构建一个输入实例 int n = i...
  • VBA与数据库

    2015-11-19 18:07:38
    实例5-7 将工作表数据保存到已有的Access数据库(循环方式)(DAO) 136 •实例5-8 将工作表数据保存到已有的Access数据库(数组方式)(ADO) 138 •实例5-9 将工作表数据保存到已有的Access数据库(数组方式)...
  • VBA常用语法

    千次阅读 2021-01-14 19:50:24
    最近接触了一下VBA编程,才知道Excel还能编程,而且还如此强大,真的是惊呆了,话不多说,先了解一下VBA常用的语法吧。 //高级for循环 Function deleteArrayByIndex(list) As String Dim item For Each item In ...
  • 实验三:分别用for、while和do-while循环语句以及递归方法计算n!,并输出算式 //用for循环语句求n! Public class jiecheng { Public static void main (String[] args) { Scanner = new Scanner(Sytem.in); ...
  • 上一讲【Excel VBA】利用数组、集合、循环等检查各单位报送情况——每月自动汇总考勤数据实例已经完成了检查各单位报送情况的功能,对已报送单位进行打标,未打标的表示是未报送,催促其报送考勤数据。经过不懈的...
  • 之前的一篇文章,讲了如何使用Dir函数遍历获取文件夹下所有文件,当然演示使用的实例比较简单,方便演示结果。实际工作中各部门报送的考勤除了明细统计表还有通报文件。具体文件信息如下图: 本文章就演示如何只...
  • 第9行代码关闭“数据表”工作簿,使用GetObject函数返回对象的引用时,虽然在窗口中看不到对象的实例,但实际上是打开的,所以需用Close语句将其关闭。 第12行代码开启屏幕更新。 3、隐藏Application对象 ...
  • 第九节 循环语句 第十节 其他类语句和错误语句处理 第十一节 过程和函数 第十二节 内部函数 第二章 Excel VBA常用对象之使用 第一节 文件的操作 1) Excel文件 2) 文本文件 3) Access文件 第二节 工作表操作...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 752
精华内容 300
关键字:

vba循环语句实例