百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

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

liebian365 2024-11-16 23:12 27 浏览 0 评论

【分享成果,随喜正能量】事,不困于心,烦扰,方不乱心。众生,是众缘和合而生。众生万物,皆是平等,我们能做的,唯有敬畏、珍惜、善待,呵护好这世间的美好。。

《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 ]

参数:

1)element 必需。用于循环访问集合或数组的变量。对于集合,element只能为Variant变量、通用对象变量或任何特定的对象变量。对于数组,element仅可是Variant变量。

2)group 必需。对象集合或数组(用户定义类型除外)的名称。

3)statements 可选。在每个项目上执行的一个或多个语句。

注意点:

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

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

下面代码中,我们将利用“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 这句是对变量的声明,声明book、sheet、text分别为Workbook、Workbook、String。

2) For 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

将弹出一个对话框,告诉用户提取的内容。

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

3 代码执行的效果

我们先添加一个空白的工作薄,然后运行上述代码:

我们看到,最后弹出的对话框中包括每个打开的工作薄名称及每个工作薄中工作表的名称。

今日内容回向:

1) 什么是遍历语句?

2) 遍历语句的语法是什么样的?

3) 如何应用遍历语句?

本讲内容参考程序文件:工作簿03.xlsm


我20多年的VBA成果全在下面的资料中:

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

相关推荐

深度解密epoll 如何工作的?(epoll基本处理流程)

epoll...

大乐透第19082期:头奖开出7注1000万分落六地 奖池41亿元

2019年7月17日晚开奖的体彩超级大乐透第19082期开奖号码为:前区06、18、20、21、31,后区03、04。本期大乐透前区号码五区比为1:0:3:0:1,二区和四区号码没有给出。当期前区和值...

【开奖】4月27日周六:福彩、体彩(2021年4月27日体彩开奖结果)

4月27日开奖福彩3D第2019110期:61222选5第2019110期:0812202122排列3第19110期:303排列5第19110期:30305大乐透第19047期:0304...

“红狒狒”落户哈尔滨铁路局(哈尔滨铁路红肠)

这几天,“红人”“红狒狒”在牡丹江机务段可引起了不小的轰动,众粉丝争相与其拍照留念,在该段人气爆棚!“红狒狒”到底何许人也?“红狒狒”,中文名:和谐3D型电力机车;绰号:红狒狒、番茄;制造商:大连机...

2D、3D、2.5D,做游戏还是搞噱头?玩家都晕了

前言游戏类型就像某种潮流,一种流行罢,另一种接棒成为主流。前两年的新作大多以“开放世界”为标签,在追求纯沙盒的过程中打造出一些细致的分类,比如说“类GTA沙盒”。诚然,纯碎的沙盒游戏并不多见,业内只有...

《战神4》PC版宣传片发布 GTX 1070即可60帧畅玩

在今年10月的时候索尼PlayStation官方正式宣布圣莫尼卡2018年的《战神4》将于2022年1月14日推出PC版本,官方在今天公布了一段PC版宣传片,并且公开了游戏的配置需求。下面让我们一起来...

男星深情好丈夫形象崩塌,半夜搂美女坐大腿,举止亲密

近日,于晓光被拍到深夜在酒吧玩,结束后与一名女子一起上车离开。上车后,女子直接坐在了他腿上,他也顺势搂着美女,美女满脸笑容地坐在他腿上玩手机离开。可能有人会好奇,于晓光是谁呢?于晓光是韩国艺人秋瓷炫的...

d3d12dll丢失怎么修复?d3d12dll加载失败怎么解决?

  d3d12.dll丢失怎么修复?d3d12.dll加载失败怎么解决?很多朋友想要运行游戏的时候都会遇到这个问题,这种情况该怎么办呢?今天系统之家小编给朋友们讲讲具体的解决方法,操作其实还蛮简单的。...

许多玩家反馈《生化4RE》PC一直崩溃 无法进入游戏

今日(3月24日),卡普空《生化危机4:重制版》正式发售,然而有部分PC玩家遇到了游戏崩溃等问题。很多玩家在贴吧发帖称游戏遇到了严重的崩溃问题,且经常反复,报错代码普遍为FatalD3Derror...

微软正式推出适用于WSL Linux的D3D12 GPU视频加速技术

今天,微软正式向WindowsSubsystemforLinux(WSL)用户发布了Direct3D12GPU视频加速支持。在微软通过WSL允许在Linux下使用Open...

《怪物猎人:崛起》曙光系统报错“Fatal d3d error”的解决办法

《怪物猎人:崛起》曙光系统报错“Fatald3derror”的解决办法不少小伙伴反应《怪物猎人:崛起》DLC曙光预载以后打不开游戏,出现了Fatald3derror类似的错误代码,这类问题的解...

Mac+双屏,前端程序员的专业配置 - Loctek 乐歌 D3D 双屏电脑显示器支架

做FE也有一段日子了,电脑屏幕每天在设计稿、浏览器、IDE、即时通讯工具、Terminal、邮箱之间切换。虽然mac的工作区带来了很多灵活,但是依然略显不足。于是入手支架,把公司配的电脑和显示器发挥起...

RPC 的原理和简单使用(rpc详解)

RPC的概念RPC,RemoteProcedureCall,翻译成中文就是远程过程调用,是一种进程间通信方式。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数。在调用的...

大厂开源的golang微服务rpc框架 — kitex

提前rpc估计所有的开发同学都知道,不知道的也无所谓,毕竟我也好几年没用了,今天带大家在复习一下。RPC(RemoteProcedureCall):远程过程调用,...

干货!一文掌握Protobuf所有语言所有用法,快收藏

说实话,Protobuf这个库,让人相见时难别亦难,东风无力百花残,每次等到要用它的时候,总感觉还没有完全掌握它的用法,而实际上等去百度或者谷歌的时候,教程都是多么的凌乱不堪。学会它,最直接关系到的,...

取消回复欢迎 发表评论: