VBA 有问题。在我看来,运行时错误“91”。任何的想法?

Osc*_*rga 6 excel vba

嗨,我正在尝试使用 VBA 解压缩文件,但出现运行时错误 91。这是我的代码:

Dim Destino As String
Dim Origen As String
Dim oAplica As Object

Destino = "C:\Users\Oscar Mayorga\Downloads"
Origen = "C:\Users\Oscar Mayorga\Downloads\PD20210822.zip"
Set oAplica = CreateObject("Shell.Application")
oAplica.Namespace(Destino).CopyHere oAplica.Namespace(Origen).Items
Run Code Online (Sandbox Code Playgroud)

知道发生了什么吗?非常感谢

Sid*_*out 8

更改Destino = "C:\Users\Oscar Mayorga\DownloadsDestino = "C:\Users\Oscar Mayorga\Downloads\"。也更改声明为StringVariant

这是你正在尝试的吗?(未经测试

Dim Destino As Variant
Dim Origen As Variant
Dim oAplica As Object

Destino = "C:\Users\Oscar Mayorga\Downloads\"
Origen = "C:\Users\Oscar Mayorga\Downloads\PD20210822.zip"
Set oAplica = CreateObject("Shell.Application")
oAplica.Namespace(Destino).CopyHere oAplica.Namespace(Origen).Items
Run Code Online (Sandbox Code Playgroud)

说明:您正在使用后期绑定。要理解这一点,请使用如下所示的早期绑定。设置对Microsoft Shell Controls and Automationfrom的引用Tools | References

在此处输入图片说明

Option Explicit

Sub Sample()
    Dim Destino As Variant
    Dim Origen As Variant
    Dim oAplica As Shell32.Shell

    Destino = "C:\Users\Oscar Mayorga\Downloads\"
    Origen = "C:\Users\Oscar Mayorga\Downloads\PD20210822.zip"
    Set oAplica = New Shell32.Shell
    oAplica.Namespace(Destino).CopyHere oAplica.Namespace(Origen).Items
End Sub
Run Code Online (Sandbox Code Playgroud)

现在,当您在输入括号后按空格键时,您会注意到以下内容

在此处输入图片说明

它期望一个Variant. 更多关于它的信息可以在Shell.NameSpace 方法中阅读

如果上述链接失效

在此处输入图片说明