暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Excel VBA之For Each遍历循环的应用

VBA语言専攻 2022-11-29
236
【分享成果,随喜正能量】事,不困于心,烦扰,方不乱心。众生,是众缘和合而生。众生万物,皆是平等,我们能做的,唯有敬畏、珍惜、善待,呵护好这世间的美好。。
《VBA之Excel应用》(10178983)是非常经典的,是我推出的第七套教程,定位于初级,目前是第一版修订。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,实例众多。大家可以非常容易的掌握相关的知识,这套教程共三册,十七章,都是我们在利用EXCEL工作过程中需要掌握的知识点,希望大家能掌握利用。今日讲解的内容是“VBA之EXCEL应用”的第三章内容:Excel VBA之For Each遍历循环的应用

第三节 遍历工作薄和工作表(For Each循环的利用)

大家好,我们在这讲中将讲解遍历循环语句,这种语句在VBA代码中利用的十分普遍,也是我们在VBA代码中经常利用的三种循环语句之一:For Each循环。下面我们将看到Excel vba中的一个程序,它遍历循环所有打开的工作簿和工作表,并显示所有的名称。

1  For Each...Next 语句讲解

语法:
For Each element In group
statements ]
Exit For ]
statements ]
Next [ element ]

参数:
1element 必需。用于循环访问集合或数组的变量。对于集合,element只能为Variant变量、通用对象变量或任何特定的对象变量。对于数组,element仅可是Variant变量。
  2)group 必需。对象集合或数组(用户定义类型除外)的名称。
  3)statements   可选。在每个项目上执行的一个或多个语句。

注意点:

l如果group中有至少一个元素,则进入“For Each”循环。在进入循环后, 循环中的所有语句都将对group中的每一个元素执行。如果group中有多个元素,则继续为每个元素执行循环中的语句。group中不再有元素时,退出循环并继续执行“Next”语句后的语句。
l可以将任意数量的Exit For语句作为另一种退出方式放置在循环中的任何位置。"退出" 通常在评估某些条件后使用, 例如,if…then…, 将执行下一个紧接着的语句。
l可通过将“For Each...Next”循环放置在另一个该循环内来嵌套“For...Each...Next”循环。 但是,每个循环element必须是唯一的。
l如果忽略Next [ element ] 语句中的element ],循环一样继续执行。不可随用户定义类型的数组一起使用“For Each...Next”语句,因为“Variant”不可包含用户定义类型。

遍历工作薄和工作薄的代码

下面代码中,我们将利用“For Each...Next”语句遍历所有打开的工作薄和每个工作薄的工作表的名称。

Sub mynzH() '遍历循环
    Dim book As Workbook, sheet As Worksheet, text As String
    For Each book In Workbooks
        text = text & "Workbook: " & book.Name & vbNewLine & "Worksheets: " & vbNewLine
        For Each sheet In book.Worksheets
            text = text & sheet.Name & vbNewLine
        Next
        text = text & vbNewLine
    Next
    MsgBox text
End Sub

代码截图:

代码讲解:
 1) Dim book As Workbook, sheet As Worksheet, text As String 这句是对变量的声明,声明booksheettext分别为WorkbookWorkbookString
 2For Each sheet In book.Worksheets
            text = text & sheet.Name & vbNewLine
     Next
 以上是内层循环,将提取每个工作表的名称。
 3 For Each book In Workbooks
        text = text & "Workbook: " & book.Name & vbNewLine & "Worksheets: " & vbNewLine
        。。。。。
        text = text & vbNewLine
    Next
  以上是外层循环讲提取每个工作薄的名称。
4) MsgBox text
 将弹出一个对话框,告诉用户提取的内容。

l注意:可以使用&运算符连接(联接)元素。若要开始新行,可以使用vbNewLine。

代码执行的效果

我们先添加一个空白的工作薄,然后运行上述代码:
我们看到,最后弹出的对话框中包括每个打开的工作薄名称及每个工作薄中工作表的名称。


今日内容回向:
   1) 什么是遍历语句?
   2) 遍历语句的语法是什么样的?
   3)   如何应用遍历语句?

本讲内容参考程序文件:工作簿03.xlsm
   
 
我20多年的VBA成果全在下面的资料中:



【分享成果,随喜正能量】带着感激和欣赏得眼光,看待周遭得一切,你会惊异于,生活处处都是美好。你是怎样的人,自己懂就好。过怎样的日子,你自己享受或者承担就好。

文章转载自VBA语言専攻,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论