排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
首页
/
VBA循环提取某文件夹中所有EXCEL文件
VBA循环提取某文件夹中所有EXCEL文件
VBA语言専攻
2023-02-12
282
【分享成果,随喜正能量】向生活的纵深去,向生活的高远去,向生活的未来去,向生活的光明去,从来都是情怀深处的一种光芒和力量。春天归来,春风和暖,行走时光的温暖,把春天描绘在内心世界里。。
《V
BA
之Excel应用》(
10178983
)是非常经典的,是我推出的第七套教程,定位于初级,目前是第一版修订。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,实例众多。大家可以非常容易的掌握相关的知识,这套教程共三册,十七章,都是我们在利用E
XCEL
工作过程中需要掌握的知识点,希望大家能掌握利用。今日讲解的内容是第三章内容:
VBA
循环提取某文件夹中所有E
XCEL
文件
第五节
循环提取某目录下的所有文件
大家好,在上一讲中,我们讲了如何提取已经打开工作薄的名称和工作簿所有工作表的名称,那么如何提取某个目录文件夹下面的所有文件并同时提取文件的所有工作表名称呢(这讲我们单就EXCEL文件进行提取)?在这讲中,我们将学习到Dir函数及Do While循环,并再次展示给大家对象的层次结构。
4 DO WHILE
循环讲解
我们来详细看看在VBA中利用的第二种循环语句DO WHILE 循环:
1)语法:
Do { While | Until } condition
[ statements ]
[ Continue Do ]
[ statements ]
[ Exit Do ]
[ statements ]
Loop
或者
Do
[ statements ]
[ Continue Do ]
[ statements ]
[ Exit Do ]
[ statements ]
Loop { While | Until } condition
2)参数说明:
①
Do 必需。 开始循环的定义 Do 。
②
While 必选项(除非使用了Until)。 重复循环,直到 condition 为False。
③
Until 必选项(除非使用了 While)。 重复循环,直到 condition 为True。
④
condition 可选。 Boolean 表达式。 如果 condition 为 Nothing ,则 Visual Basic 将其视为 False 。
⑤
statements 可选。 一个或多个重复的语句,或在之前重复 condition True 。
⑥
Continue Do 可选。 将控制转移到循环的下一次迭代 Do 。
⑦
Exit Do 可选。 将控制转移到 Do 循环外。
⑧
Loop 必需。 终止循环的定义 Do 。
使用说明:
3)Do...Loop 如果希望在满足条件之前重复
执行一组语句,请使用此结构。如果要在判断条件之后将一组语句重复执行一定次数,则可以使用
While 或 Until 来指定 condition ,但不能同时使用两者。condition
只能在循环的开头或结尾测试一次。
4) Do...Loop 结构
和do
While 语句
的区别在于
condition 在循环的开头或结尾进行测试。
5
)
Exit Do语句可以提供退出 Do…Loop的替代方法。Exit Do 将控制
代码立即传输到Loop
语句后面的语句。
6
)
Exit Do 通常在计算某些条件后(例如在结构中)使用 If...Then...Else。如果检测到可能导致不必要或无法继续迭代的条件(如错误值或终止请求),则可能需要退出循环。Exit Do的
另一种用途是测试可能导致无限循环的情况,这是一个可运行很大甚至无限次数的循环。这时可以使用Exit Do 来转义循环。
7)可以在程序中的任意位置使用任意数量的 Exit Do 语句
,在嵌套循环内使用时
Exit Do 将控制转移出最内层循环,并将其转移到下一个更高的嵌套级别。
5
实现提取文件夹中文件的代码及代码运行效果
有了上面的知识点讲解,我们来看下面的代码:
Sub mynzJ() '循环提取某目录下的所有文件
Dim directory As String, myfileName As String, mysheet As Worksheet
Application.ScreenUpdating = False '关闭屏幕更新
directory = ThisWorkbook.Path & "\提取文件\"
myfileName = Dir(directory & "*.xl??") '使用Dir函数来查找存储在此目录中的第一个文件*.xl??,变量fileName现在保存在目录中找到的第一个Excel文件的名称
Do While myfileName <> ""
i = i + 1
j = 2
Cells(i, 1) = myfileName '提取文件名
Workbooks.Open (directory & myfileName) '从关闭的Excel文件中提取数据(或工作表名称)没有简单的方法。因此,我们打开Excel文件
For Each mysheet In Workbooks(myfileName).Worksheets '将Excel文件的所有工作表名称添加到第i行的其他列中。
ThisWorkbook.Worksheets(7).Cells(i, j).Value = mysheet.Name
j = j + 1
Next
Workbooks(myfileName).Close '关闭Excel文件。
myfileName = Dir() 'Dir函数是一个特殊函数。要获取其他Excel文件,您可以再次使用Dir函数而不带参数。
Loop
Application.ScreenUpdating = True '再次启用屏幕更新
End Sub
代码截图:
代码的讲解:
1)这讲的代码和上一讲的代码思路类似,只是多了一个DIR
函数的文件名提取。
2
)为了提取到E
XCEL
文件我们利用了
Dir(directory & "*.xl??")
的格式,写法要注意,如果不需要值提取E
XCEL
文件,我们就可以直接用
Dir(directory & "*.*")
即可。
下面看一个代码的执行效果:
这样就完全提取出来了文件夹中的ex
cel
文件。
今日内容回向:
1) Dir函数的意义是什么?
2) 如何利用dir函数提取指定的类型文件?
3) do循环的格式是怎样的,意义是什么?
4) 如何提取文件夹中的EXCEL文件的文件名及工作表名称并回填给工作表?
本讲内容参考程序文件:工作簿03.xlsm
我20多年的VBA成果全在下面的资料中:
【分享成果,随喜正能量】那些小小的积累,小小的改变,小小的推动,小小的呈现,叫步步前进、日日不止,不必追问,自有抵达,总会到达。
。
电子表格
vba
loop
文章转载自
VBA语言専攻
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨