vba自动发邮件正文带excel表格

VBA可以通过使用Outlook对象模型自动发送电子邮件,同时在邮件正文中包含Excel表格。下面是一些示例代码,可以帮助您实现这个目标:

首先,需要添加对Microsoft Outlook和Microsoft Excel对象库的引用。在VBA编辑器中选择“工具”菜单,然后选择“引用”。在“可用引用”列表中找到并选中“Microsoft Outlook Object Library”和“Microsoft Excel Object Library”。

接下来,我们需要定义Outlook应用程序和邮件项对象,并将Excel表格插入邮件正文中:

Sub SendEmailWithExcelTable()
    Dim olApp As Outlook.Application
    Dim olMail As Outlook.MailItem
    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    Dim olInspector As Outlook.Inspector
    Dim olDocument As Word.Document
    Dim olRange As Word.Range
    '打开Outlook应用程序
    Set olApp = New Outlook.Application
    '创建新的邮件项
    Set olMail = olApp.CreateItem(olMailItem)
    '打开Excel应用程序和工作簿
    Set xlApp = New Excel.Application
    Set xlBook = xlApp.Workbooks.Open("Excel文件路径")
    Set xlSheet = xlBook.Sheets("工作表名称")
    '复制Excel表格
    xlSheet.Range("A1:E10").Copy
    '将表格粘贴到Outlook邮件正文中
    Set olInspector = olMail.GetInspector
    Set olDocument = olInspector.WordEditor
    Set olRange = olDocument.Range
    olRange.Collapse Direction:=wdCollapseEnd
    olRange.Paste
    '设置邮件属性
    With olMail
        .To = "收件人邮箱"
        .Subject = "邮件主题"
        .Send
    End With
    '关闭Excel应用程序和工作簿
    xlBook.Close SaveChanges:=False
    xlApp.Quit
    '释放对象
    Set olApp = Nothing
    Set olMail = Nothing
    Set xlApp = Nothing
    Set xlBook = Nothing
    Set xlSheet = Nothing
    Set olInspector = Nothing
    Set olDocument = Nothing
    Set olRange = Nothing
End Sub

在上面的代码中,我们使用Range对象选择要复制的Excel表格区域,并使用Copy方法将其复制到剪贴板。然后,我们将表格粘贴到Outlook邮件正文中,使用WordEditor属性获取Inspector对象的Word文档对象,并使用Range对象将表格粘贴到文档末尾。最后,我们设置邮件的收件人、主题和发送邮件。

请记得在代码中修改Excel文件路径、收件人邮箱和邮件主题,以及更改表格范围,以符合您的具体要求。

希望这能帮到您。

  •