admin管理员组文章数量:1794759
VBA之dir函数综合使用
1.dir函数的有判断一个文件是否存在的功能,也可以使用通配符模糊匹配 返回的是该文件的文件名
Sub test()
Dim i As Integer For i = 1 To 5 If Dir(“d:\\data” & Range(“a” & i) & ".xls*) = “” Then Range(“b” & i) = “无此文件” Else Range(“b” & i) = “有文件” End If
Next
End Sub
2.如果一个文件夹下有重名文件,dir函数会如何判断呢
Sub test2()
Range(“a1”) = Dir(“d:\\data\\苏州.xls*”) '第一个dir返回.xls的文件 Range(“a2”) = Dir '第二个dir返回.xlsx文件 Range(“a3”) = Dir '由于没有满足条件的,第三个dir返回空 'Range(“a4”) = Dir '第四个dir返回错误
End Sub
3.用dir拿到文件夹下所有的文件名
Sub test3() Dim str As String
str = Dir(“d:\\data*.xls*”)
For i = 1 To 100 Range(“a” & i) = str
If str = "" Then '如果str为空了,说明下一个要报错了,退出循环 Exit For End If str = Dir '把第二个dir的值赋给strNext
End Sub
4.打开一个路径下的所有文件,然后关闭掉 代码如下:
Sub test4() 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) '把打开的文件用set赋值给wb ' 中间可以用来写功能 wb.Close '关闭打开的文件 str = Dir If str = "" Then Exit For End IfNext
End Sub
5.跨文件复制数据,把其他文件的第一张表,复制到指定文件的第一张表里 代码如下:
Sub 文件合并() 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.Sheets(1).Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) '跨文件复制时,注意这里的sheets(sheets.count) 要加thisworkbook,不然就是指当前打开的wb ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name = Split(wb.Name, ".")(0) '给表取名,这里用到了split,因为文件名是**.xlsx格式,所以用split按照 "." 来分割 wb.Close str = Dir If str = "" Then Exit For End IfNext End Sub
6.跨文件复制数据,把其他文件的所有表,复制到指定文件里,并且按照原文件的 “表名+文件名” 来命名 代码如下: Sub 文件合并() Dim str As String Dim wb As Workbook Dim sht As Worksheet
str = Dir(“d:\\data*.xls*”)
For i = 1 To 100 Set wb = Workbooks.Open(“d:\\data” & str)
For Each sht In wb.Sheets sht.Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) '跨文件复制时,注意这里的sheets(sheets.count) 要加thisworkbook,不然就是指当前打开的wb ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name = Split(wb.Name, ".")(0) & sht.Name '给表取名,这里用到了split,因为文件名是**.xlsx格式,所以用split按照 "." 来分割 Next wb.Close str = Dir If str = "" Then Exit For End IfNext
End Sub
版权声明:本文标题:VBA之dir函数综合使用 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686490488a73392.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论