【问题标题】:How to place text in the clipboard so that it pastes as a table in Word?如何将文本放在剪贴板中,以便在 Word 中粘贴为表格?
【发布时间】:2010-09-22 18:30:30
【问题描述】:

在 MS Office 中使用 VBA,如何将文本添加到 Windows 剪贴板,以便将其作为表格粘贴到 Word 中?

【问题讨论】:

    标签: vba ms-word ms-office clipboard


    【解决方案1】:

    Windows 剪贴板支持多种格式。当您想在剪贴板中放置东西时,您可以调用 RegisterClipboardFormat() 一次或多次,告诉它您将放置在剪贴板上的对象的格式,然后调用 SetClipboardData() 将数据实际放入剪贴板.

    如果您希望能够将表格粘贴到 Word 中,那么 HTML 是最容易使用的格式。只需将 HTML 表格复制到剪贴板上,它就会正确粘贴到 Word 中,前提是您首先将剪贴板数据注册为 HTML 对象。

    我会给你一些代码,但最简单的方法是参考 MSDN 上的示例:

    How to add HTML code to the clipboard using Visual Basic

    此页面甚至显示了将 HTML 表格复制到剪贴板的示例。

    【讨论】:

    • 我得到了这个工作,但发现我无法将表格单元格数据粘贴到现有的 Word 表格中,就像在 Word 表格之间复制和粘贴一样。相反,剪贴板表格数据显示为单个 Word 表格单元格中的嵌套表格。要使其正常工作可能需要详细了解 Word 期望在剪贴板上找到的内容。
    • 要像 Word 那样将表格单元格粘贴到 Word 表格中,我猜我需要将 RTF 格式放到剪贴板上。
    【解决方案2】:

    您是否尝试过将其格式化为 HTML 表格?

    【讨论】:

    • 不起作用。当您复制它时,您需要告诉剪贴板它是一个 HTML 表格。
    【解决方案3】:

    我已经有一段时间没有进行任何 Windows 编程了,但我似乎记得你注册了对象的格式。实际上,您可以注册多个不同格式的对象,粘贴应用程序可以在它们之间进行选择(例如使用 Word 的Paste Special 选项)。

    我会尝试创建一个 Word 表格对象,用您的数据填充它的单元格,然后将其复制到剪贴板上。

    【讨论】:

      【解决方案4】:

      剪贴板很棒...但是使用它来保存程序的输出以粘贴到 Word 中似乎有点粗略。您正在尝试做的事情是什么,您可能应该以其他方式做?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-31
        相关资源
        最近更新 更多