将Excel表格作为附件发送

问题描述

需要您的帮助。

我有一个具有物料可用性的Excel项目表,并且存储的电子邮件地址垂直放置在预告单元中,并且在该电子邮件地址下,Y&N映射完成了项目管理器中整个样式代码

我正在寻找一个VBA代码,该代码应针对标题单元格中提到的电子邮件地址逐一过滤数据库,并复制找到Y的表并将其作为附件发送。

主题将是“更新的SOH”。请参考下面提到的数据库示例。

Item Master

解决方法

我一直使用宏来发送电子邮件,这是未编辑的代码:

Sub SendEmail(Optional ToAddresses As String,Optional CcAddresses As String,_
Optional BccAddresses As String,Optional Subject As String,_
Optional Body As String,Optional AttachFiles As Variant = False,Optional AutoSend As Boolean = False)
'Adapted from https://www.rondebruin.nl/win/s1/outlook/bmail4.htm

    Dim OutApp As Object
    Dim OutMail As Object

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    With OutMail
        .To = ToAddresses
        .CC = CcAddresses
        .Bcc = BccAddresses
        .Subject = Subject
        
        If Body Like "*</*>*" Then
            .HtmlBody = Body
        Else
            .Body = Body
        End If
        
        If Not AttachFiles = False Then
            If IsArray(AttachFiles) Then
                For x = LBound(AttachFiles) To UBound(AttachFiles)
                    .Attachments.Add (AttachFiles(x))
                Next
            Else
                .Attachments.Add (AttachFiles)
            End If
        End If
        
        If AutoSend = True Then
            .Send
        Else
            .Display
        End If
    End With

    Set OutMail = Nothing
    Set OutApp = Nothing

End Sub

由于浏览器出现问题(抱歉),我看不到您的屏幕截图,但希望这会有所帮助,因为在您在另一个子循环中的某个时刻,您可以执行以下操作;

Call SendEmail (ToAddresses:= "someone@example.com; someoneelse@exmpl.com",_
        Subject:="Updated SOH",_
        Attachfiles:="c:/Users/Me/Documents/Myfile.txt",_
        Autosend:=True)

有关sub用法的一些说明:

  • 所有参数都是可选的
  • 收件人,抄送和密件抄送地址是字符串,如果要在任何这些字段中使用多个地址,只需用分号将它们分开,就像普通电子邮件一样。
  • SubjectBody也是字符串。正文可以是HTML或纯文本,它将检测到哪个。
  • Attachfiles必须是字符串或一维字符串数组(如果附加多个文件)。它应该是完整的文件名,包括路径-参见我上面给出的示例。
  • 如果AutoSendTrue,则电子邮件将在您不曾看到的情况下发送(除非出现错误,例如您没有输入有效的地址来发送)。如果它是False(默认为TRY_CONVERT),它将显示给您电子邮件,您可以在点击发送按钮之前对其进行编辑。

希望能帮助您或任何人阅读本文!我发现这对我自己真的很有用,而且没有理由不应该让其他人不受益-无论如何,根据我从在线来源改编的代码中的第一条评论。