在VBA中经常使用以下语句,来复制文本到剪贴板,但有时会出错。
Dim MyData As New DataObject
MyData.SetText sData, 1
MyData.PutInClipboard
为了复制文本到剪贴板更加稳定,应该调用API来处理:
'复制文本到剪贴板
Public Sub CopyTextToClip(sData As String)
If CBool(OpenClipboard(0)) Then
Dim hMemHandle As Long, lpData As Long
hMemHandle = GlobalAlloc(0, LenB(sData) + 2)
If CBool(hMemHandle) Then
lpData = GlobalLock(hMemHandle)
If lpData <> 0 Then
CopyMemory ByVal lpData, ByVal sData, LenB(sData)
GlobalUnlock hMemHandle
EmptyClipboard
SetClipboardData CF_TEXT, hMemHandle
End If
End If
Call CloseClipboard
End If
End Sub
本文介绍了一种在VBA中更稳定地将文本复制到剪贴板的方法,通过调用API来替代传统的DataObject方法,提高了操作的稳定性。
989

被折叠的 条评论
为什么被折叠?



