Excel Macro отправить письмо - PullRequest
3 голосов
/ 21 марта 2009

У меня есть отчет, который я хотел бы отправить через Excel. это будет включать получателей, тему и информацию в теле. на самом деле это может скопировать рассматриваемые клетки. что я до сих пор делал, так это создавал кнопку и назначал ей макрос с таким кодом:

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

End Sub

Проблема в том, что эта команда отправляет книгу в виде вложения.

Может кто-нибудь помочь мне с кодом, который позволит мне сделать это.

спасибо миллион!

ура

Ответы [ 2 ]

3 голосов
/ 23 марта 2009

Установите ссылку на «библиотеку объектов 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
0 голосов
/ 21 марта 2009

Добавить ссылку на библиотеку outlook com; затем вы можете скопировать / вставить значения и форматирование того, что вам нужно, на новый лист, а затем скопировать это в почту Outlook.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...