Vba 将文本可靠地放入剪贴板

Vba 将文本可靠地放入剪贴板,vba,outlook,clipboard,Vba,Outlook,Clipboard,我在这个OutlookSession中添加了VBA代码,将邮件的主题行和收件人的姓名放入邮件正文中。这不可靠 我使用MSforms的数据对象和它的PutInClipboard函数将生成的文本移动到Windows剪贴板,以便在粘贴文本的位置上可变 这在大多数情况下都有效,但有时剪贴板只包含两个未定义的字符。我确信要插入的文本生成正确 // forClip is a string that contains a text line Set MyData = New MSForms.DataObjec

我在这个OutlookSession中添加了VBA代码,将邮件的主题行和收件人的姓名放入邮件正文中。这不可靠

我使用MSforms的数据对象和它的PutInClipboard函数将生成的文本移动到Windows剪贴板,以便在粘贴文本的位置上可变

这在大多数情况下都有效,但有时剪贴板只包含两个未定义的字符。我确信要插入的文本生成正确

// forClip is a string that contains a text line
Set MyData = New MSForms.DataObject
MyData.Clear
MyData.SetText forClip
MyData.PutInClipboard
// the code ended here but as described the clipboard then contains ��
// I added the following lines only to find out where it all goes wrong

MyData.GetFromClipboard
forClip = MyData.GetText(1) 
// the string going back to "forClip" only contains the two characters mentioned.

Set MyData = Nothing
代码大部分时间都在工作——但如果失败,它将继续失败


剪贴板会不会将文本解释为不同的内容而不是文本?有没有办法强迫它将数据解释为文本?

我在Windows 10上的代码有问题-您可能需要切换到基于API的方法。看,谢谢你@TimWilliams-这非常有效!