使用Excel 365 VBA将文本复制到剪贴板



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

我找到了一个我无法工作的有希望的答案: 将变量的内容复制到剪贴板 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"。

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

文本板显示两个问号"??"。

你试过这样的事情吗?

将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

最新更新