2015-10-23 4 views
1

Эй, моя программа проверяет zip-файл и копирует его в другой каталог. Однако я наткнулся на объектную переменную «Ошибка времени« 91 »или с переменной блока, которая не установлена» на oApp, когда я ее скомпилировал.Ошибка времени выполнения '91' vba-access

Sub UnZip(Fname As Variant) 

    Dim oApp As Object 
    Dim FileNameFolder As Variant 

    FileNameFolder = "P:\" 
    Set oApp = CreateObject("Shell.Application") 
    oApp.Namespace(FileNameFolder).CopyHere oApp.Namespace(Fname).items 

End Sub 

В чем проблема?

Я использую доступ 2010

ответ

1

MS .Copyhere работает на объектах папки.

Sub UnZip(Fname As Variant) 
    dim objShell 
    dim objFolder 

    set objShell = CreateObject("shell.application") 
    set objFolder = objShell.NameSpace("P:") 

    If not objFolder is nothing then 
     objFolder.CopyHere(Fname) 
    End If 

End Sub 

Fname должно содержать как путь, так и имя файла с расширением.

+0

В моем случае я получил Fname как FolderItem. Однако, когда я запускаю objFolder.CopyHere (Fname), я получаю такую ​​же ошибку «91» или переменную объекта, которая не установлена ​​» –

+0

Fname следует передать на unzip sub в виде строки. – MatthewD

Смежные вопросы