2009-03-20 4 views
3

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

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

End Sub 

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

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

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

веселит

ответ

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 
+0

Это отлично работает, но я предпочитаю его без OL.Quit, который закрывает Outlook пользователя, если он открыт. –

+0

@HeadofCatering Я предпочитаю его без обозначения «Dim ... As New». В противном случае это работает хорошо. – JimmyPena

+0

Это определенно зависит от вас, чтобы убедиться, что вы правильно создаете Outlook, либо проверив, что он уже открыт с помощью GetObject, или что-то еще. Иллюстративная часть этого кода просто помещает значения Excel в электронную почту Outlook. –

0

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

Смежные вопросы