Excel 2010 E-mail VBA отправить всю книгу - PullRequest
1 голос
/ 05 февраля 2020

Я искал 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 = "mymail@domain.com"
        .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.

Есть ли обходной путь для этого, чтобы он просто работал как обычно Файл -> Сохранить и отправить -> Отправить как вложение?

1 Ответ

0 голосов
/ 05 февраля 2020

Я предполагаю, что вы не хотите его сохранять, поэтому работайте с [ Application.Dialogs MSDN ]

Пример 1

Option Explicit
Public Sub example()
    Application.Dialogs(xlDialogSendMail).Show _
                arg1:="mymail@domain.com", _
                arg2:=Range("A1").Value
End Sub

Пример 2 [ Workbook.SendMail MSDN ] Отправка рабочей книги с использованием установленной почтовой системы

Option Explicit
Public Sub example()
ActiveWorkbook.SendMail _
     Recipients:=Array("mymail@domain.com", "mymail@domain.com"), _
        Subject:=Range("A1").Value
End Sub

Или сохраните книгу перед отправкой.

Пример

  ActiveWorkbook.Save
 .Attachments.Add ActiveWorkbook.FullName
 .send
...