我有一个 ms access vba 代码,我希望将一些文本值复制到 Windows 剪贴板,以便我可以将其粘贴到其他地方(Word/Excel/记事本/等)。
我一直在寻找这个,但一切似乎都过于复杂。难道不应该是简单的事情吗
剪贴板.SetText 文本值
?
编辑
我尝试按照 BrianMStafford 的提示进行操作,但没有成功。也许原因是我的对象是树中的一个节点。当我做
MsgBox Me.NodeKey.Value
一切正常 - 我在消息框中看到节点路径。
但当我这样做时
Me.NodeKey.SetFocus
DoCmd.RunCommand acCmdCopy
我在剪贴板中没有获取节点路径
那么如何将节点路径值复制到Windows剪贴板中呢?
Public Sub WriteToClipboard(ByVal text As String)
CreateObject("htmlfile").ParentWindow.ClipboardData.SetData "text", text
End Sub
Run Code Online (Sandbox Code Playgroud)
用法示例:
WriteToClipboard "test"
Run Code Online (Sandbox Code Playgroud)
编辑#1
上面的内容在 Excel 中似乎工作得很好。我只设法让它在特定计算机的 Access 中工作。在另一台计算机上进行测试后,我收到错误 70(访问被拒绝)。
仅当 Windows 资源管理器关闭时,以下内容才适用于 Excel。但是,无论资源管理器是否打开/关闭,它在 Access 中似乎都能正常工作:
Public Sub WriteToClipboard(ByVal text As String)
With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") 'MsForms.DataObject
.SetText text
.PutInClipboard
End With
End Sub
Run Code Online (Sandbox Code Playgroud)