在 VBA 中以编程方式删除文件时遇到问题
Trouble Deleting files programmatically in VBA
我很难将 Windows 7 OS 认为某些文件夹正在使用(不允许删除文件夹),而实际上它们不是。
经过大量研究和反复试验,我能够使用在 Windows 7:
上运行良好的命令
rmdir /S /Q "S:\Allied MTRS\Not Scanned\FITTINGS AND FLANGES\RG AR 2686 MOVED FOR AUTO INDEXING"
当我尝试通过 shell 命令以编程方式 运行 时(请参阅下面的代码),它会给我:"File Not Found" 消息。
因此,如果您首先尝试以编程方式 运行 它,它将无法工作。然后尝试 运行 同样的事情,通过命令行,它工作正常。当然,如果您再次尝试按语法 运行 它,之后,它会给您 "File Not Found" (当然,因为该文件夹已被删除)。如果你想重试实验,你必须在另一个文件夹上尝试....
有什么想法吗?
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
这是一个可能的答案,但我正在寻找更好的答案。
但是,嘿,如果没有,至少这行得通,只是在编写一些代码方面多了一点劳动......
创建批处理文件
DelFile.Bat,说。
DelFile.Bat 由我的程序编辑(以编程方式)。
我对其进行编辑,使其具有我想要的“rmdir /S /Q? 语句。
然后,我运行它通过shell。
我很难将 Windows 7 OS 认为某些文件夹正在使用(不允许删除文件夹),而实际上它们不是。
经过大量研究和反复试验,我能够使用在 Windows 7:
上运行良好的命令rmdir /S /Q "S:\Allied MTRS\Not Scanned\FITTINGS AND FLANGES\RG AR 2686 MOVED FOR AUTO INDEXING"
当我尝试通过 shell 命令以编程方式 运行 时(请参阅下面的代码),它会给我:"File Not Found" 消息。
因此,如果您首先尝试以编程方式 运行 它,它将无法工作。然后尝试 运行 同样的事情,通过命令行,它工作正常。当然,如果您再次尝试按语法 运行 它,之后,它会给您 "File Not Found" (当然,因为该文件夹已被删除)。如果你想重试实验,你必须在另一个文件夹上尝试....
有什么想法吗?
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
这是一个可能的答案,但我正在寻找更好的答案。 但是,嘿,如果没有,至少这行得通,只是在编写一些代码方面多了一点劳动......
创建批处理文件 DelFile.Bat,说。 DelFile.Bat 由我的程序编辑(以编程方式)。 我对其进行编辑,使其具有我想要的“rmdir /S /Q? 语句。
然后,我运行它通过shell。