无法在VBA中以编程方式删除文件

时间:2018-07-12 15:31:47

标签: excel vba shell delete-file

我在使用Windows 7 OS时遇到了困难,因为它认为某些文件夹正在使用中(不允许删除文件夹),而实际上却没有。

经过大量研究和反复试验,我能够使用在Windows 7上运行良好的命令:

rmdir /S /Q "S:\Allied MTRS\Not Scanned\FITTINGS AND FLANGES\RG AR 2686 MOVED FOR AUTO INDEXING"

当我尝试通过shell命令(请参见下面的代码)以编程方式运行此程序时,它会显示:“找不到文件”消息。

因此,如果您尝试首先以编程方式运行它,它将无法正常工作。然后尝试通过命令行运行相同的东西,它工作正常。当然,如果您尝试再次以语法方式运行它,此后,它将显示“找不到文件”(自然,因为该文件夹已被删除)。如果您想重试该实验,则必须尝试另一个文件夹。...

有什么想法吗?

Sub tryitz()

    Dim s As String
    Dim ReturnCode As Integer

    s = "S:\Allied MTRS\Not Scanned\FITTINGS AND FLANGES\RG AR 2686 MOVED FOR AUTO INDEXING"

    s = "rmdir /S /Q " + Chr(34) + Trim(s) + Chr(34)

    ReturnCode = Shell(s)

End Sub

1 个答案:

答案 0 :(得分:0)

这是一个可能的答案,但我正在寻找更好的东西。 但是,嘿,如果没有的话,至少这是可行的,就编写一点代码而言,这只是一点点劳动...

创建一个批处理文件 比如说DelFile.Bat。 DelFile.Bat由我的程序编辑(以编程方式)。 我对其进行编辑,使其具有所需的“ rmdir / S / Q?”语句。

然后,我通过shell运行它。