excel - 使用 Excel VBA 将 Excel 工作簿中的 OLEObject 内容放入 Outlook 电子邮件正文

标签 excel vba email outlook

OLEObject 是 Microsoft Word 文档对象。我希望文件的内容作为正文中的文本。 Word 文档还包含图像。

执行此操作的代码行有问题:

Option Explicit
Sub Genera_email()
    Dim App As Object
    Dim MailItem As Object
    Set App = CreateObject("Outlook.Application")
    Set MailItem = App.CreateItem(0)
    With MailItem
        .BCC = Selection.Value
        .Subject = "Text object"
        .Body = Worksheets(2).OLEObjects(1) ' the problem line
        .Display
    End With
    Set MailItem = Nothing
    Set App = Nothing
    Selection.Offset(0, 1).Select
    Selection.Value = "V"
    Selection.Offset(1, -1).Select
End Sub

我使用 Microsoft Office 2016。

这行代码的正确语法是什么?

最佳答案

如果您想将内容包含在正文中,则必须将文件复制到临时文件夹中,并在使用新对象打开后,复制内容并粘贴到正文中。 要将 OLE 对象保存在文件夹中,您可以使用如下代码:

Worksheets(2).OLEObjects(1).Copy    
CreateObject("Shell.Application").Namespace(ActiveWorkbook.Path).Self.InvokeVerb "Paste"

然后创建 Microsoft Word 文档对象并复制内容。

如果您想附加。

 Option Explicit
Sub Genera_email()
    Dim App As Object
    Dim MailItem As Object
    Set App = CreateObject("Outlook.Application")
    Set MailItem = App.CreateItem(0)
    With MailItem
        .BCC = Selection.Value
        .Subject = "Text object"
        .Body = "Say Hello"
        .Attachments.Add Worksheets(2).OLEObjects(1)
        .Display
    End With
    Set MailItem = Nothing
    Set App = Nothing
    Selection.Offset(0, 1).Select
    Selection.Value = "V"
    Selection.Offset(1, -1).Select
End Sub

关于excel - 使用 Excel VBA 将 Excel 工作簿中的 OLEObject 内容放入 Outlook 电子邮件正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48818149/

相关文章:

excel - 如何将matlab答案导出到excel?

excel - 基于对齐方式排序

function - 创建一个使用带变量的函数的宏

javascript - 切换电子邮件时保持 Outlook 2016 任务 Pane 打开

excel - 使用 Excel VBA 中的行值填充组合框

excel - 删除具有两个条件的行的最有效方法

vba - 如何使用VBA仅打印Word文档中的第一页?

vba - 在 VBA 中,如何将整个 Excel 表存储到包含所有相关子信息的易于访问的数组中?

c# - 如何格式化 stringbuilder 以在表格中发送我的电子邮件而不是纯文本

linux - 收到邮件时运行linux脚本