2014-02-11 224 views
1

如果用户已将文件复制到文件系统中的剪贴板,我希望用户返回到Excel电子表格并单击按钮。该按钮背后的代码应该将此文件粘贴到预定义的文件夹中。粘贴复制文件从剪贴板到文件系统

我知道可以通过VBA从剪贴板读取/写入字符串。是否可以在VBA中从剪贴板中读取复制的文件并将其放置到文件夹中(在此操作过程中不需要打开文件)?

+1

我认为让shell正确*粘贴*会很困难,这里是如何获取文件的名称,以便您可以'FileCopy()'他们:http://stackoverflow.com/a/2913670/246342 –

+0

不要将VBA问题标记为VB6。 – Bob77

+0

鲍勃,根据这里接受的答案http://stackoverflow.com/questions/993300/difference-between-visual-basic-and-vba,VBA和VB6基本上是相同的语言,因此我包含了VB6标签。我会假设我的问题的解决方案可以应用于VBA和VB6。注意我关于剪贴板的问题不是特定于Excel对象模型的。 –

回答

3

当您将文件复制到资源管理器中的剪贴板时,文件本身不会放置在剪贴板上(如果您复制200GB的文件,图像会发生什么:))。相反,Explorer将例如文件在剪贴板上的路径采用特殊的剪贴板格式(即非文本)。您可以阅读更多关于MSDN的格式。

我还没有与这些剪贴板格式密切合作,但似乎在大多数情况下,你会寻找CF_HDROP格式。你需要一些VBA来将数据按摩到文件的路径中,但是从那里开始就是一个简单的文件拷贝来完成操作。