|
楼主 |
发表于 2009-6-9 10:00
|
显示全部楼层
第10部分 文件操作
技巧179 搜索特定的文件
如果需要对文件夹中所有的Excel文件进行相同的操作,那么可以使用Execute方法进行文件搜索,示例代码如下所示。- #001 Sub Sort()
- #002 Dim i As Byte
- #003 Application.ScreenUpdating = False
- #004 With Application.FileSearch
- #005 .LookIn = ThisWorkbook.Path
- #006 .FileType = msoFileTypeExcelWorkbooks
- #007 If .Execute > 0 Then
- #008 For i = 1 To .FoundFiles.Count
- #009 If .FoundFiles(i) <> ThisWorkbook.FullName Then
- #010 Workbooks.Open .FoundFiles(i)
- #011 With ActiveWorkbook
- #012 .Sheets("Sheet1").Range("A1") = "最后打开时间:" & Now
- #013 .Close True
- #014 End With
- #015 End If
- #016 Next
- #017 End If
- #018 End With
- #019 Application.ScreenUpdating = True
- #020 End Sub
复制代码 代码解析:
Sort过程搜索同一目录中的所有Excel文件并对其进行操作。
第3行代码关闭屏幕更新功能,加快代码的运行速度。
第4行代码为文件搜索创建一个FoundFiles对象。
第5行代码设置要搜索的文件夹,应用于FoundFiles对象的LookIn属性返回或设置在指定的文件搜索过程中要搜索的文件夹。
第6行代码设置搜索的文件类型为Excel文件,应用于FoundFiles对象的FileType属性返回或设置文件搜索过程中要查找的文件类型,设置为msoFileTypeExcelWorkbooks返回Excel文件。
第7行代码开始对指定文件进行搜索,应用于FoundFiles对象的Execute方法用于搜索文件,语法如下:
expression.Execute(SortBy, SortOrder, AlwaysAccurate)
参数expression是必需的,返回一个FoundFiles对象。
参数SortBy是可选的,用于对返回的文件进行排序。
参数SortOrder是可选的,表明所返回文件的排序顺序。
参数AlwaysAccurate是可选的,设置为True使文件搜索包括上次更新文件索引以来添加、修改或删除的文件。
在使用Execute方法搜索文件时,如果没有找到文件,则返回零(0),如果找到一个或多个文件,则返回一个正数。
第8行代码使用For...Next 语句遍历Execute方法返回的返回的文件列表。应用于FoundFiles对象的FoundFiles属性返回一个FoundFiles对象,代表由文件搜索过程中返回的文件列表。
第9行代码判断返回的单个FoundFiles对象的名称是否是示例文件的名称,如果否则执行后续代码。
第10行代码使用应用于Workbooks对象的Open方法打开由返回的单个FoundFiles对象代表的工作簿。
第11行到第14行代码在打开的活动工作簿的工作表中写入打开时间后保存、关闭活动工作簿。
运行Sort过程将打开示例所在文件夹中所有的Excel文件并对其进行相应的操作。 |
|