I'm trying to extract a .CAB file using Excel VBA, but I'm getting the following error:
Run-time error '91': Object variable or With block variable not set
I usually get this when I forget to use Set
with an Object, but I've checked for that.
All examples I can find are variations on this theme:
Private Function DeCab(vSource, vDest) As Long
Dim objShell, objFileSource, objFileDest As Object
Set objShell = CreateObject("Shell.Application")
Set objFileSource = objShell.Namespace(vSource)
Set objFileDest = objShell.Namespace(vDest)
Call objFileDest.MoveHere(objFileSource.Items, 4 Or 16) 'Fails here
Decab = objFileDest.Items.Count
End Function
It's not failing on the Set
line, but it's setting both objFileSource
and objFileDest
to Nothing
even though I've confirmed vSource
and vDest
exist.
To confirm it has nothing to do with the .CAB file, I've also tried it without setting objFileSource
and checking the value of objFileDest
after it's set. It still returns Nothing
. Why would that be? I'm on Windows 7, 64-bit, running Office 2010.