The correct syntax would be something like this:
scp -P 234 -r ~/local/directory email@example.com:/remote/directory
The code you've shown tries to copy files from your local machine accessed via localhost to your local machine accessed directly
UPDATE: If you're trying to issue the
scp command from an ssh session on the remote host to copy files back to your virtualbox Ubuntu, then I'm afraid it's not impossible in most cases - i.e. most likely the virtualbox Ubuntu instance can't be connected to from the outside world unless you did some setup (i.e. set up a bridged adapter in your host OS, configured port forwarding on the modem etc.). Moreover, the IP address you're trying to use - 127.0.0.1 - is a "local loopback" address and is only accessible from the same machine. I.e. when you run the command on the server, this IP refers to the server.
So I'm still suggesting you to use the syntax I showed above - just keep in mind that "local" in the command means "the machine on which you have a terminal session open", not the physical machine you're sitting at.
Example: if you wan to copy a file from one server to another:
# copy a file from local machine to server1.com
user@local-machine# scp ./somefile.txt firstname.lastname@example.org:/home/user2
# copy a file from server1.com to server2.com
user@local-machine# ssh email@example.com
user1@server1# scp ./somefile.txt firstname.lastname@example.org:/home/user2
# copy a file from server2.com to server1.com
user@local-machine# ssh email@example.com
user2@server2# scp ./otherfile.txt firstname.lastname@example.org:/home/user1
# can't copy a file TO local-machine because it's not accessible from internet