首页 文章

使用Excel将Outlook电子邮件发送到收件人列表[关闭]

提问于
浏览
-1

我正在尝试使用Excel vba将所选数据通过电子邮件发送给收件人列表 .

例:
专栏A小时
B栏费率
C列总计
D栏电子邮件地址

我们列出了数百人的付款详细信息,每周发送一次 . 我们将Excel文件中的信息复制并粘贴到Outlook电子邮件中 .

有没有办法用Excel VBA发送电子邮件?

2 回答

  • 1

    这应该有助于您开始朝着正确的方向前进 .

    Sub SendEmail()
    
        Dim OutApp As Object, OutMail As Object
    
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
    
        With OutMail
            .To = 'Your Contact List
            .CC = ""
            .BCC = ""
            .Subject = "Your Subject Name"
            .HTMLBody = 'The email body
            .Display
        End With
    
    End Sub
    
  • 1
    In column A : Names of the people
    In column B : E-mail addresses
    In column C:Z : Filenames like this C:\Data\Book2.xls (don't have to be Excel files)
    

    宏将循环遍历“Sheet1”中的每一行,如果列B中有电子邮件地址,列C:Z中有文件名,它将创建包含此信息的邮件并发送 .

    Sub Send_Files()
    'Working in Excel 2000-2016
    'For Tips see: http://www.rondebruin.nl/win/winmail/Outlook/tips.htm
        Dim OutApp As Object
        Dim OutMail As Object
        Dim sh As Worksheet
        Dim cell As Range
        Dim FileCell As Range
        Dim rng As Range
    
        With Application
            .EnableEvents = False
            .ScreenUpdating = False
        End With
    
        Set sh = Sheets("Sheet1")
    
        Set OutApp = CreateObject("Outlook.Application")
    
        For Each cell In sh.Columns("B").Cells.SpecialCells(xlCellTypeConstants)
    
            'Enter the path/file names in the C:Z column in each row
            Set rng = sh.Cells(cell.Row, 1).Range("C1:Z1")
    
            If cell.Value Like "?*@?*.?*" And _
               Application.WorksheetFunction.CountA(rng) > 0 Then
                Set OutMail = OutApp.CreateItem(0)
    
                With OutMail
                    .to = cell.Value
                    .Subject = "Testfile"
                    .Body = "Hi " & cell.Offset(0, -1).Value
    
                    For Each FileCell In rng.SpecialCells(xlCellTypeConstants)
                        If Trim(FileCell) <> "" Then
                            If Dir(FileCell.Value) <> "" Then
                                .Attachments.Add FileCell.Value
                            End If
                        End If
                    Next FileCell
    
                    .Send  'Or use .Display
                End With
    
                Set OutMail = Nothing
            End If
        Next cell
    
        Set OutApp = Nothing
        With Application
            .EnableEvents = True
            .ScreenUpdating = True
        End With
    End Sub
    

    https://www.rondebruin.nl/win/s1/outlook/amail6.htm

相关问题