大数据 爬虫Python AI Sqlexcel的一些小技巧教程

使用Dir函数合并多文件

2019-07-24  本文已影响0人  A_rrow

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
上一篇 下一篇

猜你喜欢

热点阅读