当前位置: 首页 > news >正文

【EXCEL_VBA_基础知识】10 使用Dir函数合并多个文件数据

课程来源:王佩丰老师的《王佩丰学VBA视频教程》,如有侵权,请联系删除!

目录

1. 将对象赋值到变量(SET)

2. 认识DIR函数

2.1 dir函数简介

2.2 多文件合并

3. Find函数(全区域查找,并返回Range)


1. 将对象赋值到变量(SET)

Sub Set_Func()Dim sht As WorksheetFor i = 2 To 5'SET方法 将新建工作表对象赋值到sht变量Set sht = Sheets.Addsht.Name = Sheet1.Range("a" & i)NextEnd Sub

2. 认识DIR函数


2.1 dir函数简介

1. dir后面的参数应该以反斜杠“\”结尾,这样才能返回该文件夹下的文件名称。否则“新建文件夹”会被当成一个文件名进行处理。

2. Dir运行一次只能得到一个文件名。为得到下一个文件名,代码应该这样写:filename = Dir。

3. 第二次使用Dir,后面不写任何参数,如果写了与前面相同的参数,则会重新扫描该文件夹,又得到第一个文件名,如果更改为其他文件夹,就扫描该文件夹,得到它的第一个文件名

4. 如果文件夹中有n个文件,或者说有n个符合条件的文件,那么当Dir运行第n+1次时,则返回一个空字符串,代表已经查找完所有的文件。Dir运行第n+2次时,程序将报错。

2.2 多文件合并

Sub Merge_WB()'文件合并Dim WBs_Name As String
Dim WB As Workbook
Dim sht As Worksheet'返回满足条件的文件名
WBs_Name = Dir("d:\data\*.xls*")Do while WBs_Name <> ""Set WB = Workbooks.Open("d:\data\" & WBs_Name)For Each sht In WB.Sheetssht.Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name _ = VBA.Split(WB.Name, ".")(0) & sht.Name '工作薄名称 & 工作表名称
NextWB.Close
WBs_Name = Dir '返回下一个满足条件的文件名LoopEnd Sub

3. Find函数(全区域查找,并返回Range)

Sub Range_Search()Dim rng As Range' 对象赋值到变量
' 若未成功查找,rng变量为nothing(啥也没有)
' 分开写的原因是因为如果rng为nothing时,offset会出错
Set rng = Range("d:d").Find(Range("l3"))If Not rng Is Nothing Then'rng 不为nothingRange("m3") = rng.Offset(0, 3)
End IfEnd Sub

相关文章:

  • python冰雹序列的探索与编程实现
  • Restful API设计与使用:介绍什么是RESTful架构,以及如何在Spring Boot中设计和实现Restful API
  • Mybatis源码剖析---第二讲
  • 【Java面试】一、Redis篇(上)
  • 链表-设计LRU缓存结构
  • uni-app App端实现文字语音播报(Ba-TTS)
  • PTA 6-4 配对问题
  • 如何参与github开源项目并提交PR
  • Linux下环境变量配置出错导致基础命令使用不了的问题解决
  • 抖音分享链接视频下载
  • [Algorithm][动态规划][简单多状态DP问题][按摩师][打家劫舍Ⅱ][删除并获得点数][粉刷房子]详细讲解
  • 手机相册的照片彻底删除了怎么恢复?删除照片恢复的5种方法
  • 甘肃教育杂志社-甘肃教育编辑部
  • CSP俄罗斯方块(简单易懂)
  • C语言笔记21 •模拟atoi函数•
  • [PHP内核探索]PHP中的哈希表
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Android 控件背景颜色处理
  • ES6之路之模块详解
  • Git学习与使用心得(1)—— 初始化
  • iOS小技巧之UIImagePickerController实现头像选择
  • nginx 配置多 域名 + 多 https
  • PAT A1120
  • scrapy学习之路4(itemloder的使用)
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 初识MongoDB分片
  • 计算机常识 - 收藏集 - 掘金
  • 理清楚Vue的结构
  • 模型微调
  • 浅谈Golang中select的用法
  • 思否第一天
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • ###C语言程序设计-----C语言学习(3)#
  • #数据结构 笔记一
  • $.ajax()方法详解
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (附源码)c#+winform实现远程开机(广域网可用)
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (含笔试题)深度解析数据在内存中的存储
  • (六)Hibernate的二级缓存
  • (一)、软硬件全开源智能手表,与手机互联,标配多表盘,功能丰富(ZSWatch-Zephyr)
  • (转)VC++中ondraw在什么时候调用的
  • **python多态
  • *2 echo、printf、mkdir命令的应用
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .net解析传过来的xml_DOM4J解析XML文件
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .net网站发布-允许更新此预编译站点
  • .NET运行机制