Excel 2010电子邮件VBA发送整个工作簿

问题描述 投票:1回答:1

我一直在寻找可以发送整个工作簿的VBA。

我找到了这个

    Sub Mail()

    Dim OutApp As Object
    Dim OutMail As Object

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

    On Error Resume Next

    With OutMail
        .To = "[email protected]"
        .CC = ""
        .BCC = ""
        .Subject = Range("A1").Value
        .body = ""
        .Attachments.Add ActiveWorkbook.FullName
        .send
    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

但是打开已发送的邮件时,工作簿全部为空。因此,在使用VBA之前,我必须保存工作簿。

是否有解决方法,因此它只能作为普通文件->保存并发送->以附件形式发送?

excel vba email outlook outlook-vba
1个回答
0
投票

我假设您不想保存它,因此请使用[Application.Dialogs MSDN ]] >>

示例1

Option Explicit
Public Sub example()
    Application.Dialogs(xlDialogSendMail).Show _
                arg1:="[email protected]", _
                arg2:=Range("A1").Value
End Sub

示例2 [Workbook.SendMail MSDN]

Option Explicit
Public Sub example()
ActiveWorkbook.SendMail _
     Recipients:=Array("[email protected]", "[email protected]"), _
        Subject:=Range("A1").Value
End Sub

或在发送前保存工作簿。

示例

  ActiveWorkbook.Save
 .Attachments.Add ActiveWorkbook.FullName
 .send
© www.soinside.com 2019 - 2024. All rights reserved.