Hol*_*sen 5 clipboard vba ms-word office365
我在 Windows 10 64 位下使用 Office 365。我正在尝试清除剪贴板。宏录制器产生一个空的子。
\n以下尝试主要来自如何使用 VBA 清除 Office 剪贴板:
\nOption Explicit\nPublic Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long\nPublic Declare Function EmptyClipboard Lib "user32" () As Long\nPublic Declare Function CloseClipboard Lib "user32" () As Long\n\nPublic Sub ClearClipboardA()\n Application.CutCopyMode = False\nEnd Sub\n\nPublic Sub ClearClipBoardB()\n \' Source: http://www.vbaexpress.com/kb/getarticle.php?kb_id=462\n Dim oData As New DataObject\n oData.SetText Text:=Empty \' Clear\n oData.PutInClipboard \' Putting empty text into the clipboard to empty it\nEnd Sub\n\nPublic Sub ClearClipboardC()\n OpenClipboard (0&)\n EmptyClipboard\n CloseClipboard\nEnd Sub\nRun Code Online (Sandbox Code Playgroud)\n版本A:
\n\n\n未找到方法或数据成员
\n
版本 B:运行时不清除剪贴板。很快就会出现一个黄色的小状态窗口:
\n\n\n“24 中的 7 - 剪贴板 | 未获取元素”
\n
(翻译成英文)
\nC版本:似乎什么也没发生。
\n在上面的参考用户 iamstrained 中写道: \xe2\x80\x9c... 如果有人正在寻找如何在 64 位下的 Office 365 中执行此操作,您现在需要使用向后兼容性的修改来完成此操作:Private Declare PtrSafe和LongPtr因为您对这些值的两次更改将解决问题并使其仍然有效。\xe2\x80\x9d
我找到了对 Microsoft 页面的引用,其中可能已经完成了此操作:
\n\n使用此处显示的 subs,我可以将文本插入剪贴板并从中提取,但不能清除它。
\n我可以确认下面的代码清除了 Windows 剪贴板
#If Win64 Then
Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hwnd As LongPtr) As Long
Declare PtrSafe Function CloseClipboard Lib "user32" () As Long
Declare PtrSafe Function EmptyClipboard Lib "user32" () As Long
#Else
Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Declare Function CloseClipboard Lib "user32" () As Long
Declare Function EmptyClipboard Lib "user32" () As Long
#End If
Public Sub ClearClipboard()
OpenClipboard (0&)
EmptyClipboard
CloseClipboard
End Sub
Run Code Online (Sandbox Code Playgroud)
您可以从https://www.microsoft.com/en-us/download/confirmation.aspx?id=9970下载指针安全声明
| 归档时间: |
|
| 查看次数: |
5005 次 |
| 最近记录: |