I am trying to use the Shell.Namespace construct to copy files in a WinXP system. I'm using VBA in Excel 2007. In a nutshell, here's the code I'm using:

dim myShell as object
dim source, dest
set myshell = CreateObject("Shell.Application")

source="blahblah"
dest="blahblah"

myshell.namespace(source).CopyHere (dest)  '<--Error 91 "obect variable or with block not set"
Now...I have read what seems like every single post on the internet about this subject and here's what I've tried so far: (none of which has worked...)

-Tried the source and dest as both strings and variants

-tried wrapping source and dest in double parenthesis like so...
myshell.namespace((source)).CopyHere ((dest))
-tried appending a blank string or Error$ to the variable like so (with both double and single parenthesis)...
myshell.namespace(Error$ & source).CopyHere ("" & dest)
-tried assigning namespace to a variable like so (trying all the tricks above)...
dim myNSsource, myNSdest
      myNSsource = myshell.namespace(source)
      myNSdest = myshell.namespace(dest)
-I even tried assigning the source and dest as string literals like so (again trying all the tricks above)...
myshell.namespace("blahblah").CopyHere ("blahblah")

Absolutely NONE of this works. I have tried every possible permutation of the above tricks and I still get Error 91 on the .copyHere line. When I assign the namespaces to a variable, it returns nothing, so I assume it is the .Namespace command that fails, but I can find nothing that I haven't already tried. Please help!...this is driving me nuts!