VBA FileSystemObject(FSO)|如何访问FileSystemObject?
Excel VBA FileSystemObject(FSO)
VBA FileSystemObject(FSO) 与FileDialog相似,用于访问我们正在处理的计算机的其他文件。我们还可以编辑这些文件,即读取或写入文件。使用FSO,我们可以访问文件,使用它们,修改文件和文件夹。 FSO是我们可以通过VBA访问的重要API工具。作为VBA项目的一部分,我们可能需要访问计算机中的一些文件夹和文件才能完成工作。
我们可以使用FSO完成许多任务,例如“检查文件夹是否可用”,创建新文件夹或文件,重命名现有文件夹或文件,获取文件夹中所有文件的列表以及子文件夹名称,以及最后,我们可以将文件从一个位置复制到另一位置。
即使还有其他功能可用于处理文件夹和文件,FSO也是通过保持VBA代码整洁而直接来处理文件夹和文件的最简单方法。
我们可以使用FileSystemObject访问4种类型的对象。下面是那些。
- 驾驶: 使用该对象,我们可以检查所提到的驱动器是否存在,我们可以获得驱动器的路径名,类型和大小。
- 文件夹: 这个对象允许我们检查特定的文件夹是否存在。我们可以使用该对象创建,删除,修改,复制文件夹。
- 文件: 该对象使我们可以检查特定文件是否存在。我们可以使用此vba对象创建,删除,修改,复制文件。
- 文字串流: 该对象使我们可以创建或读取文本文件。
以上所有方法都有其自己的方法可以使用。根据我们的要求,我们可以选择每个对象的方法。
如何启用FileSystemObject?
在VBA中不容易访问它。由于访问文件和文件夹是excel的外部任务,因此我们需要启用FileSystemObject。要启用,请执行以下步骤。
步骤1:转到“工具”>“参考”。
步骤#2 –选择“ Microsoft脚本运行时”选项
向下滚动并选择“ Microsoft脚本运行时”选项。选择选项后,单击确定。
现在,我们可以在vba中访问FileSystemObject(FSO)。
创建FileSystemObject的实例
从对象库启用“ Microsoft脚本运行时”选项后,我们需要通过编码来创建文件系统对象(FSO)的实例。
要创建实例,首先将变量声明为 FileSystemObject。
如我们所见 FileSystemObject 在VBA的IntelliSense列表中显示。在启用“ Microsoft脚本运行时”之前,该功能将不可用。
由于FSO是对象,因此我们需要对其进行设置以创建新实例。
现在,我们可以访问FSO(FileSystemObject)的所有选项。
使用VBA FileSystemObject的示例
您可以在此处下载此VBA FileSystemObject Excel模板– VBA FileSystemObject Excel模板Example#1 –查找总驱动器空间
下面的代码将给出驱动器的总空间。
代码:
Sub FSO_Example1()Dim MyFirstFSO作为FileSystemObject Set MyFirstFSO = New FileSystemObject Dim DriveName作为Drive Dim DriveSpace作为Double Set DriveName = MyFirstFSO.GetDrive(“ C:”)'创建新的驱动器对象DriveSpace = DriveName.FreeSpace'这将获得可用空间驱动器“ C”的位置DriveSpace = DriveSpace / 1073741824'这会将可用空间转换为GB DriveSpace = Round(DriveSpace,2)'将总空间MsgBox舍入为“ Drive”&DriveName&“ has”&DriveSpace&“ GB子
分解代码。
首先,我们创建了FSO的实例。
将MyFirstFSO调暗为FileSystemObject设置MyFirstFSO =新的FileSystemObject
接下来,我们声明了两个变量。
昏暗的DriveName作为驱动器昏暗的DriveSpace作为双
由于DriveName是一个Object变量,我们需要将其设置为FSO方法之一的FSO。由于我们需要驱动器的特性,因此我们使用了“获取驱动器”选项并提到了驱动器名称
设置DriveName = MyFirstFSO.GetDrive(“ C:”)
现在,对于另一个变量DriveSpace,我们将分配要访问的驱动器的自由空间方法。
DriveSpace = DriveName.FreeSpace
到目前为止,以上等式可以为我们提供驱动器“ C”的自由空间。因此,为了显示结果以GB为单位,我们将可用空间除以1073741824
驱动器空间=驱动器空间/ 1073741824
接下来,我们将舍入该数字。
DriveSpace =圆形(DriveSpace,2)
最后,在消息框中显示结果。
MsgBox“驱动器”和“驱动器名”具有“和驱动器空间”及“ GB”
当我们手动或通过快捷键F5运行代码时,在消息框中,我们将获得驱动器“ C”的可用空间。
因此,在我的计算机中,驱动器C具有216.19 GB的可用空间。
Example#2 –检查文件夹是否存在
要检查特定文件夹是否存在,请使用以下代码。
如果提到的文件夹可用,它将显示以下消息框: “提到的文件夹可用”,否则将显示VBA消息框为 “提到的文件夹不可用”。
代码:
Sub FSO_Example2()将MyFirstFSO设置为FileSystemObject,将MyFirstFSO设置为MyFirstFSO = New FileSystemObject如果MyFirstFSO.FolderExists(“ D:\ Excel Files \ VBA \ VBA Files”),则MsgBox“提到的文件夹可用”,否则MsgBox“提到的文件夹不可用”如果结束子则结束
通过excel快捷键F5或手动运行此代码,然后查看结果。
Example#3 –检查文件是否存在
下面的代码将检查所提到的文件是否可用。
代码:
Sub FSO_Example3()将MyFirstFSO设置为FileSystemObject,将MyFirstFSO设置为MyFirstFSO = New FileSystemObject如果MyFirstFSO.FileExists(“ D:\ Excel Files \ VBA \ VBA Files \ Testing File.xlsm”),则MsgBox“提到的文件可用”文件不可用”如果结束则结束
手动或使用F5键运行此代码,然后查看结果。