我有以下VBA代码可以提取给定目录中的所有文件。
Sub extractAllFiles()
Dim MyObj As Object, MySource As Object, file As Variant
Dim shellStr As String
file = Dir("C:\Downloads\")
While (file <> "")
If InStr(file, ".gz") > 0 Then
shellStr = "winzip32 -e C:\Downloads\" & file & " C:\Downloads\"
Call Shell(shellStr, vbHide)
End If
file = Dir
Wend
End Sub
执行这个子程序时,我收到了一个运行时错误53,“找不到文件”的错误。当我复制shellStr到命令提示符并执行它时,例如:
winzip32 -e C:\Downloads\file1.gz C:\Downloads\
,它可以完美地工作!我成功将file1.gz中的文本文件提取到下载目录中。然而,在VBA中运行它似乎不起作用。请问有人能帮忙解决吗?