【问题标题】:Copy text to clipboard with Excel 365 VBA使用 Excel 365 VBA 将文本复制到剪贴板
【发布时间】:2020-01-12 17:35:05
【问题描述】:

我想将文本复制到 Windows 10 剪贴板,以便使用 Ctrl+V 粘贴到适当的外部应用程序中。

我找到了一个我无法工作的有希望的答案: Copy Variable's Contents to Clipboard VBA (Excel 2013)

我的简化测试代码:

Sub TestCopyTextToVar()

Dim myData As DataObject
Dim Output As String
Output = "abc"

Set myData = New DataObject
myData.SetText Output
myData.PutInClipboard
MsgBox (Output & " Text has been copied")

End Sub

MsgBox 将输出正确显示为“abc”。

粘贴到记事本(或其他应用程序,例如预期的应用程序)中不会显示任何内容。

TextPad 显示两个问号“??”。

【问题讨论】:

  • 这显然是SetText 的已知错误。方法。见here

标签: excel vba clipboard


【解决方案1】:

你尝试过这样的事情吗?

将 Excel 光标指向非空单元格,运行下面的 VBA 脚本,然后转到记事本粘贴剪贴板内容。

Sub TestLoadActivecellToClipboard()
    Clipboard ActiveCell.Value
End Sub

' Copy Excel value to the Windows Clipboard
Function Clipboard$(Optional s$)
    Dim v: v = s  'Cast to variant for 64-bit VBA support
    With CreateObject("htmlfile")
    With .parentWindow.clipboardData
        Select Case True
            Case Len(s): .setData "text", v
            Case Else:   Clipboard = .GetData("text")
        End Select
    End With
    End With
End Function

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-19
    • 2010-12-01
    相关资源
    最近更新 更多