Excel宏发送电子邮件

时间:2009-03-20 22:39:51

标签: excel email excel-vba vba

我有一份报告,我想通过excel发送。 它将包括收件人,主题和身体信息。实际上它可以复制有问题的细胞。 我到目前为止所做的是创建一个按钮并使用以下代码为其指定一个宏:

Private Sub CommandButton1_Click()
 Application.Dialogs(xlDialogSendMail).Show arg1:=Sheets("Sheet1").Range("E3"), _
                      arg2:=Sheets("Sheet1").Range("E7")

End Sub

问题是此命令将工作簿作为附件发送。

有人可以帮助我使用允许我这样做的代码。

感谢百万!

欢呼声

2 个答案:

答案 0 :(得分:3)

设置对“Microsoft Outlook xx.x对象库”的引用,您可以使用此代码作为构建或发送电子邮件的示例:

因为它只是显示电子邮件而不发送。您可以注释掉.display行并取消注释.send以发送它。

Sub EmailFromExcel()
    On Error GoTo PROC_EXIT
    Dim OL As New Outlook.Application

    Dim olMail As Outlook.MailItem
    Set olMail = OL.CreateItem(olMailItem)

    Dim SrcSheet As Excel.Worksheet
    Set SrcSheet = Sheets("Sheet1")

    With olMail
        .To = SrcSheet.Range("E3").Text
        .Subject = SrcSheet.Range("E7").Text
        .Body = SrcSheet.Range("E12").Text
        .Display vbModal
        '.Send
    End With

 PROC_EXIT:
    On Error GoTo 0
    OL.Quit
    Set OL = Nothing
End Sub

答案 1 :(得分:0)

添加对outlook com库的引用;然后你可以复制/粘贴值&格式化新表格所需的内容,然后将其复制到Outlook邮件中。