在Vba Excel中提取.rar文件

我有一个Excel中的VBAmacros,它从一个SharePoint站点下载一个.rar文件并将其解压缩。 下载工作正常,我可以看到文件夹中下载的文件,但提取文件不工作。 我将粘贴提取文件的部分,所以我的代码看起来像这样

Sub Extract() Dim RarIt As String Dim Source As String Dim Desti As String Dim WinRarPath As String WinRarPath = "C:\Program Files\WinRar\" Source = "C:\Reports\EMEA Load.rar" Desti = "C:\Reports\" RarIt = Shell(WinRarPath & "WinRar.exe e " & Source & " " & Desti, vbNormalFocus) End Sub 

所以当我运行它,它会返回一个消息框“找不到档案”,虽然我可以看到文件夹中的.rar文件。

我已经创build了另一个解决scheme,一个解压缩文件的function

 Function Unzip(str_FILENAME As String) Dim oApp As Object Dim Fname As Variant Dim FnameTrunc As Variant Dim FnameLength As Long Dim FnamePath As Long Fname = str_FILENAME FnamePath = InStrRev(Fname, "\") FnameTrunc = Left(Fname, FnamePath) Set oApp = CreateObject("Shell.Application") oApp.Namespace(FnameTrunc).CopyHere oApp.Namespace(Fname).Items End Function 

我在我的Sub中调用这个函数,它对于.zip文件工作正常,但对于.rar文件,它返回这个错误

“Namespace对象的方法ishelldispatch6失败”

 Sub Extract2() Dim strFilePath As String strFilePath = "C:\Reports\EMEA Load.rar" Unzip (strFilePath) End Sub 

任何build议,请我需要改变我的代码? 非常感谢你。