如何将电子邮件复制到剪贴板,然后将其粘贴到 Excel 中并保持表格完好无损?
我正在使用 Outlook 2007,我想做相当于
"Click on email > Select All > Copy > Switch to Excel > Select Cell > Paste".
我已经很好地弄清楚了 Excel 对象模型,但是no除以下代码之外的 Outlook 体验。
Dim mapi As NameSpace
Dim msg As Outlook.MailItem
Set mapi = Outlook.Application.GetNamespace("MAPI")
Set msg = mapi.Folders.Item(1).Folders.Item("Posteingang").Folders.Item(1).Folders.Item(7).Items.Item(526)
我必须承认我在 Outlook 2003 中使用了它,但请看看它是否也适用于 2007:
你可以使用MSForms.DataObject与剪贴板交换数据。在 Outlook VBA 中,创建对“Microsoft Forms 2.0 对象库”,并尝试此代码(您当然可以将 Sub() 附加到按钮等):
Sub Test()
Dim M As MailItem, Buf As MSForms.DataObject
Set M = ActiveExplorer().Selection.Item(1)
Set Buf = New MSForms.DataObject
Buf.SetText M.HTMLBody
Buf.PutInClipboard
End Sub
之后,切换到 Excel 并按 Ctrl-V - 开始吧!
如果您还想查找当前正在运行的 Excel 应用程序并自动执行此操作,请告诉我。
即使邮件以纯文本或 RTF 格式发送,也始终存在有效的 HTMLBody,Excel 将显示 HTMLBody 中传达的所有文本属性(包括)。列、颜色、字体、超链接、缩进等。但是,不会复制嵌入的图像。
此代码演示了要点,但不检查是否确实选择了 MailItem。如果您想让它也适用于日历条目、联系人等,这将需要更多编码。
如果您在列表视图中选择了邮件就足够了,甚至不需要打开它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)