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

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

目录

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

[2. 认识DIR函数](#2. 认识DIR函数)

[2.1 dir函数简介](#2.1 dir函数简介)

[2.2 多文件合并](#2.2 多文件合并)

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


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

vbnet 复制代码
Sub Set_Func()

Dim sht As Worksheet

For i = 2 To 5

    'SET方法 将新建工作表对象赋值到sht变量
    Set sht = Sheets.Add
    sht.Name = Sheet1.Range("a" & i)
    
Next

End 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 多文件合并

vbnet 复制代码
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.Sheets
    sht.Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name _ 
    = VBA.Split(WB.Name, ".")(0) & sht.Name '工作薄名称 & 工作表名称
Next

WB.Close
WBs_Name = Dir '返回下一个满足条件的文件名

Loop

End Sub

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

vbnet 复制代码
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 不为nothing
    Range("m3") = rng.Offset(0, 3)
End If

End Sub
相关推荐
bin91535 小时前
【EXCEL数据处理】000009 案列 EXCEL单元格数字格式。文本型数字格式和常规型数字格式的区别
大数据·前端·数据库·信息可视化·数据分析·excel·数据可视化
Eiceblue16 小时前
Python保留数据删除Excel单元格的函数和公式
开发语言·python·excel
bin915317 小时前
【EXCEL数据处理】000014 案例 EXCEL分类汇总、定位和创建组。附多个操作案例。
信息可视化·数据挖掘·数据分析·excel·数据可视化·数据图表·excel 数据分析
育种数据分析之放飞自我17 小时前
GWAS分析中显著位点如何注释基因:excel???
linux·算法·excel
PowerBI学谦18 小时前
Python in Excel 正式发布!
开发语言·python·excel
bin915318 小时前
【EXCEL数据处理】000011 案列 EXCEL带有三角形图标的单元格转换,和文本日期格式转换。
大数据·数据库·信息可视化·数据挖掘·数据分析·excel·数据可视化
股票程序交易接口19 小时前
股票接口api,如何用excel获得股票实时数据
excel·量化交易·股票api接口·股票量化接口·python股票接口·股票实时数据
zh路西法1 天前
【Matlab绘图】从Excel导入表格并进行三维绘图
开发语言·matlab·excel
百事牛1 天前
防止错误输入!Excel单元格限制输入内容的三种有效方式
windows·excel
DefineJ1 天前
EXCEL图片链接快速批量转成图片
excel