Excel VBA代码将特定字符串复制到剪贴板。
Excel VBA代码将特定字符串复制到剪贴板。
我想在电子表格上添加一个按钮,点击按钮后会将特定的 URL 复制到我的剪贴板中。
我有一点 Excel VBA 的知识,但是已经过了一段时间,所以遇到了困难。
admin 更改状态以发布 2023年5月25日
要在Windows剪贴板上写入文本(或从Windows剪贴板读取文本),请使用此VBA函数:
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
'Three examples of copying text to the clipboard: Clipboard "Excel Hero was here." Clipboard var1 & vbLF & var2 Clipboard 123 'To read text from the clipboard: MsgBox Clipboard
这是一个解决方案,不使用MS Forms或Win32 API。相反,它使用Microsoft HTML对象库,该库快速而广泛,Microsoft并未像MS Forms那样将其弃用。此解决方案还尊重文本中的换行符,也适用于64位Office。最后,此解决方案允许同时写入和从Windows剪贴板读取文本。这个页面上没有其他解决方案有这些优势。
编辑 - MSForms已过时,因此您不应再使用我的答案。请使用此答案:https://stackoverflow.com/a/60896244/692098
我仅保留原始答案以供参考:
Sub CopyText(Text As String) 'VBA Macro using late binding to copy text to clipboard. 'By Justin Kay, 8/15/2014 Dim MSForms_DataObject As Object Set MSForms_DataObject = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") MSForms_DataObject.SetText Text MSForms_DataObject.PutInClipboard Set MSForms_DataObject = Nothing End Sub
用法:
Sub CopySelection() CopyText Selection.Text End Sub