在编写vba代码的解决方案时,经常会碰到需要对文件或者文件夹进行相关操作。虽然vba内部已经预先定义好了一系列操作文件或者文件夹的函数或者语句,但是使用起来相对零散。而FileSystemObject对象(简称FSO对象)则涵盖了几乎所有的文件或者文件夹的相关操作,包括添加、移动、修改、创建或者删除文件或文件夹,同时还可以获取文件或者文件夹的名称、创建时间、最后一次修改时间等属性,以及对文本文件进行相关的操作,是一个综合、方便的文件操作对象。
由于FileSystemObject对象存在于脚本类型库【Scripting type library (Scrrun.dll)】中 ,在vba中不能直接使用它,需要先用CreateObject(“Scripting.FileSystemObject”)创建该对象。由于它的属性和方法众多,详情可以直接浏览它的官方帮助文档FileSystemObject帮助文档。
以下是一段遍历当前目录下所有文件名到一列单元格的代码:
Sub QQ1722187970() Dim i Dim sPath sPath = Excel.Application.ThisWorkbook.Path Dim oWK As Worksheet Set oWK = ActiveSheet '定义一个FileSystemObject对象 Dim oFso As Object Set oFso = CreateObject("Scripting.FileSystemObject") '定义一个文件夹对象 Dim oFolder As Object Set oFolder = oFso.GetFolder(sPath) '定义文件对象 Dim oFile As Object '如果指定的文件夹含有文件 If oFolder.Files.Count Then For Each oFile In oFolder.Files '将所有的文件名罗列在活动单元格的第一列 With oWK .Cells(1 + i, 1) = oFile.Name End With i = i + 1 Next End If End Sub
发表评论