VBA FileSystemObject(FSO)|如何访问FileSystemObject?

Excel VBA FileSystemObject(FSO)

VBA FileSystemObject(FSO) 与FileDialog相似,用于访问我们正在处理的计算机的其他文件。我们还可以编辑这些文件,即读取或写入文件。使用FSO,我们可以访问文件,使用它们,修改文件和文件夹。 FSO是我们可以通过VBA访问的重要API工具。作为VBA项目的一部分,我们可能需要访问计算机中的一些文件夹和文件才能完成工作。

我们可以使用FSO完成许多任务,例如“检查文件夹是否可用”,创建新文件夹或文件,重命名现有文件夹或文件,获取文件夹中所有文件的列表以及子文件夹名称,以及最后,我们可以将文件从一个位置复制到另一位置。

即使还有其他功能可用于处理文件夹和文件,FSO也是通过保持VBA代码整洁而直接来处理文件夹和文件的最简单方法。

我们可以使用FileSystemObject访问4种类型的对象。下面是那些。

  1. 驾驶: 使用该对象,我们可以检查所提到的驱动器是否存在,我们可以获得驱动器的路径名,类型和大小。
  2. 文件夹: 这个对象允许我们检查特定的文件夹是否存在。我们可以使用该对象创建,删除,修改,复制文件夹。
  3. 文件: 该对象使我们可以检查特定文件是否存在。我们可以使用此vba对象创建,删除,修改,复制文件。
  4. 文字串流: 该对象使我们可以创建或读取文本文件。

以上所有方法都有其自己的方法可以使用。根据我们的要求,我们可以选择每个对象的方法。

如何启用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键运行此代码,然后查看结果。