http://www.pptjcw.com

wps演示是做什么用的:excel中怎么做vba循环

    excel中怎么做vba循环?前面我们介绍过Excel的对象模型及一些常用的对象,也解过对象变量的概念及声明对象变量的方法。其实,在绝大多数情况下,我们都是通过使用Excel VBA操纵Excel对象来达到我们的目的。例如,我们可以操作工作表对象,为工作表命名、排序工作表、统计工作表个数;我们可以操作单元格对象,在单元格区域中填充内容、查找有指定内容的单元格;等等。

    为方便操控Excel对象,VBA提供了For Each-Next结构,可以在对象组成的集合中循环,给集合中的所有对象执行操作,或者集合中满足相关条件的对象执行操作。

    使用For Each-Next结构,我们无需知道集合中对象的数目,只需要声明相应的对象变量,编写执行操作的指令。

    For Each-Next结构的语法如下:

    For Each 对象变量In 对象集合

    [语句块]

    [Exit For]

    [语句块]

    Next [对象变量]

    说明:

    按照惯例,方括号中的内容表示可选项。

    对象变量在使用前需要进行声明。

    Exit For语句表示提前退出循环。

    无需知道集合中的对象数目。

    可以与其它语法结构相互嵌套。

    下面通过示例来演示For Each-Next结构的使用。

    示例1:下面的代码遍历当前工作簿中的工作表并依次显示工作表的名字。

    Sub ForEach1()

    Dim wks As Worksheet ‘声明工作表对象变量

    ‘遍历工作表集合并依次显示工作表的名字

    For Each wks In Worksheets

    MsgBox “工作表的名字是:”& wks.Name

    Next wks

    End Sub

    示例2:通过改进上面的示例1,在显示工作表名字时表明是第几个工作表,最后统计出工作簿中的工作表数,代码如下。

    Sub ForEach2()

    Dim wks As Worksheet ‘声明工作表对象变量

    Dim i As Long ‘声明用于统计工作表数的变量

    i = 0 ‘给变量赋初始值

    For Each wks In Worksheets

    i = i + 1

    MsgBox “第” &i & “个工作表的名字是:” & wks.Name

    Next wks

    MsgBox “本工作簿共有” & i& “个工作表.”

    End Sub

    示例3:下面的代码遍历当前工作表的单元格区域A1:A5,并依次显示每个单元格中的内容。

    Sub ForEach3()

    Dim cell As Range ‘声明单元格对象变量

    ‘遍历单元格区域A1:A5并依次显示单元格内容

    For Each cell In Range(“A1:A5”)

    MsgBox cell.Value

    Next cell

    End Sub

    示例4:下面的代码与示例3的效果相同,但我们设置了代表单元格区域的对象变量并赋值,让For Each结构在对象变量代表的区域内循环遍历。

    Sub ForEach4()

    Dim cell As Range, rng As Range ‘声明单元格对象变量

    ‘设置rng变量的值

    Set rng = Range(“A1:A5”)

    ‘遍历rng对象变量代表的单元格区域并依次显示单元格内容

    For Each cell In rng

    MsgBox cell.Value

    Next cell

    End Sub

    示例5:下面的代码结合If-Then结构判断满足相应条件的单元格数。

    如下图所示,要统计成绩大于80分的学生人数。

    wps演示是做什么用的:excel中怎么做vba循环

    运行下面的代码即可。

    Sub ForEach5()

    Dim cell As Range, rng As Range ‘声明单元格对象变量

    Dim i As Long ‘声明计数变量

    ‘设置rng变量的值

    Set rng = Range(“B2:B9”)

    i = 0

    ‘遍历rng对象变量代表的单元格区域

    ‘并判断单元格中的值是否大于80

    For Each cell In rng

    If cell.Value > 80 Then

    i = i + 1

    End If

    Next cell

    MsgBox “共有” & i& “名学生超过80分.”

    End Sub

    代码在For Each循环结构中使用If-Then语句来检查每个单元格中的值,如果其值大于80,变量i就增加1。

    提示:如果您觉得本文不错,请点击分享给您的好友!谢谢

    上一篇:wps教程全集自学:WPS的文档怎么打开 下一篇:wps自动生成连续日期:excel图表循环设置

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。