VBA 在剪贴板中存储格式化文本

VBA store formatted text in clipboard

我需要 copy/store 将一串文本放入剪贴板,但需要格式化该文本(字体类型、颜色、粗细等)

Private Sub copyToCB(varText As String)
    Dim x As Variant
    x = varText

    CreateObject("htmlfile").parentWindow.clipboardData.setData "text", x
End Sub

上面的工作是将引用的文本存储到剪贴板中,但它是以纯文本形式存储的。我希望它是例如粗体和红色。

我已经在 Internet 上搜索了几个小时,但无济于事。你会认为这会很简单,但我完全不知所措!

如果您使用位于

的@GMCB 的剪贴板 类

你可以这样做:

Sub TestCopying()
    CopyWithSomeFormatting "This should paste as red/bold"
End Sub

Sub CopyWithSomeFormatting(txt As String)
    Dim myClipboard As New vbaClipboard 'Instantiate a vbaClipboard object
    myClipboard.SetClipboardText _
        "<span style='color:#F00;font-weight:bold'>" & txt & "</span>", "HTML Format"
End Sub

至少在粘贴到 Word/Excel

时对我有用