如何使用vba删除文件(附示例)


您可以使用 VBA 中的Kill语句来删除特定文件夹中的特定 Excel 文件。

以下是在实践中使用此语句的常见方法:

 SubDeleteFile ()

    On Error Resume Next
    Kill "C:\Users\Bob\Desktop\My_Data\soccer_data.xlsx"
    On Error GoTo 0

End Sub

此特定宏将删除位于以下文件夹中名为soccer_data.xlsx的Excel 文件:

C:\Users\Bob\Desktop\My_Data

On Error Resume Next行告诉 VBA,如果发生错误并且未找到文件,则不应显示任何错误消息。

然后,我们使用On Error GoTo 0将错误消息重置为默认设置。

如果您想在找不到文件时显示错误消息,只需从代码中删除这两行即可。

以下示例展示了如何在实践中使用此语法。

示例:使用 VBA 删除文件

假设我们有以下包含三个 Excel 文件的文件夹:

假设我们要使用 VBA 删除名为Football_data.xlsx的文件。

我们可以创建以下宏来执行此操作:

 SubDeleteFile ()

    On Error Resume Next
    Kill "C:\Users\Bob\Desktop\My_Data\soccer_data.xlsx"
    On Error GoTo 0

End Sub

一旦我们运行这个宏并再次打开文件夹,我们将看到名为soccer_data.xlsx的文件已被删除:

该文件夹中的所有其他文件都保持不变。

如果您希望在文件不存在时显示错误消息,可以使用以下宏:

 SubDeleteFile ()

    Kill "C:\Users\Bob\Desktop\My_Data\soccer_data.xlsx"

End Sub

当我们运行这个宏时,我们收到以下错误消息:

我们收到此错误消息是因为Football_data.xlsx文件已被删除并且不再存在于该文件夹中。

注意:请注意, Kill语句会永久删除文件,而不是简单地将其发送到垃圾箱。

其他资源

以下教程说明如何在 VBA 中执行其他常见任务:

VBA:如何计算工作簿中的工作表数量
VBA:如何从另一个工作簿中提取数据
VBA:如果名称包含特定文本,如何删除工作表

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注