【问题标题】:Paste Copied File From Clipboard To File System将复制的文件从剪贴板粘贴到文件系统
【发布时间】:2014-03-08 23:56:39
【问题描述】:

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

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

【问题讨论】:

  • 我认为让 shell 正确 粘贴 会很困难,这里是如何获取文件的名称以便您可以FileCopy() 他们:stackoverflow.com/a/2913670/246342
  • 不要将 VBA 问题标记为 VB6。
  • Bob,根据此处接受的答案stackoverflow.com/questions/993300/…,VBA 和 VB6 基本上是相同的语言,因此我包含了 VB6 标记。我会假设我的问题的解决方案可以应用于 VBA 和 VB6。请注意,我关于剪贴板的问题并非特定于 Excel 对象模型。
  • 在 VB6 IIRC 中,您可以直接通过 ClipBoard 对象执行此操作,这在 VBA 中不可用。

标签: vba excel vb6


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多