如何将 excel 文件添加到我发送的自动电子邮件中?

问题描述 投票:0回答:2

`全部关闭 *以下是通过自动化 Outlook 创建和发送电子邮件的示例:

            LOCAL oOutlook, oNameSpace, oMailItem

              oOutlook = CreateObject("Outlook.Application")
                oNameSpace = oOutlook.GetNameSpace("MAPI")

            oMailItem = oOutlook.CreateItem(0)

            #DEFINE CR CHR(13)
       WITH oMailItem
         .Subject = "Daily Reports"
     .Body = " Your daily report is there." + CR + ;
      .Recipients.Add("[email protected]")
     ENDWITH

   oMailItem.Send()

*我正在寻找一种向这个小程序添加 excel 文件的方法?`

excel vba outlook email-attachments
2个回答
1
投票

Attachments.Add 方法在 Attachments 集合中创建一个新附件。附件的来源可以是文件(由带文件名的完整文件系统路径表示)或构成附件的 Outlook 项目。所以,如果你需要附加一个excel文件,你必须将文件路径传递给

Add
方法:

Sub AddAttachment() 
 Dim myItem As Outlook.MailItem 
 Dim myAttachments As Outlook.Attachments 
 
 Set myItem = Application.CreateItem(olMailItem) 
 Set myAttachments = myItem.Attachments 
 myAttachments.Add "C:\Test.xslx", _ 
 olByValue, 1, "Test" 
 myItem.Display 
End Sub

所以,在你的示例代码中只需要添加一行代码:

     WITH oMailItem
        .Subject = "Daily Reports"
        .Body = " Your daily report is there." + CR + ;
        .Recipients.Add("[email protected]")
        .Attachments.Add("C:\Test.xslx", olByValue, 1, "Excel file" ) 
     ENDWITH

0
投票

你可以试试这个。但是,它仅适用于该特定电子邮件,您需要为其他所有电子邮件指定其他路径。假设你需要不止一个。

LOCAL oOutlook, oNameSpace, oMailItem

    oOutlook = CreateObject("Outlook.Application")
    oNameSpace = oOutlook.GetNameSpace("MAPI")
    
    oMailItem = oOutlook.CreateItem(0)
    
    #DEFINE CR CHR(13)
    WITH oMailItem
      .Subject = "Daily Reports"
      .Body = " Your daily report is there." + CR +
      .Recipients.Add("[email protected]")
      
      ' Attach your Excel file
      .Attachments.Add("C:\path\to\file.xlsx")
    ENDWITH
    
    oMailItem.Send()
© www.soinside.com 2019 - 2024. All rights reserved.