使用Dir函数合并多文件

作者: A_rrow | 来源:发表于2019-07-24 09:28 被阅读0次

1. 将对象赋值到变量

借助Set

Set sht = Sheets.add

2.Dir函数

2.1 利用Dir判断文件是否存在
Sub t()
Range("a1") = Dir("文件名的绝对路径")
End Sub

若存在该文件,则a1单元格会返回内容,否则为空

2.2 Dir函数支持通配符,可帮助判断文件后缀名不相同的情况
Dir("d\data\" & range("a" & i) & ".xls*")
2.3 Dir有三种返回情况
  1. Dir函数中有多个返回值时,第一次返回第一个
  2. 同理接下来每次都返回下一个
  3. 返回值返回完后再Dir返回空
  4. 得到空后在用Dir则报错
2.4 引出通用代码,获取一个文件夹下的所有文件名称
Sub t()
Dim str As String

str = Dir("d:\data\*.xls*")
For i = 1 To 100
    Range("a1" & i) = str
    str = Dir
    '当最后一次的dir返回值为空时,退出'
    If str = "" Then
        Exit For
    End If
Next
End Sub

可利用 Range("a1" & i) = str 进行扩展改写
如打开所有文件,Workbooks.open("d:\data" & str)

2.5 通用代码2,一次性打开所有文件,操作完毕后再一次性关闭
Sub t()

Dim str As String
Dim wb As Workbook

str = Dir("d:\data\*.xls*")

For i = 1 To 100
    Set wb = Workbooks.Open("d:\data\" & str)  
    
  
    
    wb.Close
    str = Dir
    If str = "" Then
        Exit For
    End If
Next
End Sub

3.Find函数 -- 通用查找代码

使用场景
Sub chazhao()
Dim rng As Range

'find找不到值rng也不会出错,会为空,可以以此做个判断'
Set rng = Range("d:d").Find(Range("l3"))

'rng 不是 空'
If Not rng Is Nothing Then
    '分数在名字的右边3列'
    Range("m3") = rng.Offset(0, 3)
End If

End Sub

相关文章

网友评论

    本文标题:使用Dir函数合并多文件

    本文链接:https://www.haomeiwen.com/subject/bieglctx.html