2010-09-21 112 views
0

如何使用VBA將一系列單元格從Excel複製到Outlook中的電子郵件正文(而不是將Excel文件作爲附件添加)。我只需要將內容作爲Outlook郵件的主體。任何人都可以幫助我使用宏編寫這個代碼嗎?從Excel中將單元格的範圍複製到Outlook中的電子郵件正文

+0

這回答了這個問題:http://stackoverflow.com/questions/29092999/pasting-an-excel-range-into-an-email-as-a-picture – 2015-03-17 08:11:42

回答

2

你可以在這裏找到一個打包的解決方案:http://www.rondebruin.nl/mail/folder1/mail4.htm

Sub Mail_Range() 
'Working in 2000-2010 
    Dim Source As Range 
    Dim Dest As Workbook 
    Dim wb As Workbook 
    Dim TempFilePath As String 
    Dim TempFileName As String 
    Dim FileExtStr As String 
    Dim FileFormatNum As Long 
    Dim I As Long 

    Set Source = Nothing 
    On Error Resume Next 
    Set Source = Range("A1:K50").SpecialCells(xlCellTypeVisible) 
    On Error GoTo 0 

    If Source Is Nothing Then 
     MsgBox "The source is not a range or the sheet is protected, " & _ 
       "please correct and try again.", vbOKOnly 
     Exit Sub 
    End If 

    With Application 
     .ScreenUpdating = False 
     .EnableEvents = False 
    End With 

    Set wb = ActiveWorkbook 
    Set Dest = Workbooks.Add(xlWBATWorksheet) 

    Source.Copy 
    With Dest.Sheets(1) 
     .Cells(1).PasteSpecial Paste:=8 
     .Cells(1).PasteSpecial Paste:=xlPasteValues 
     .Cells(1).PasteSpecial Paste:=xlPasteFormats 
     .Cells(1).Select 
     Application.CutCopyMode = False 
    End With 

    TempFilePath = Environ$("temp") & "\" 
    TempFileName = "Range of " & wb.Name & " " _ 
       & Format(Now, "dd-mmm-yy h-mm-ss") 

    If Val(Application.Version) < 12 Then 
     'You use Excel 2000-2003 
     FileExtStr = ".xls": FileFormatNum = -4143 
    Else 
     'You use Excel 2007-2010 
     FileExtStr = ".xlsx": FileFormatNum = 51 
    End If 

    With Dest 
     .SaveAs TempFilePath & TempFileName & FileExtStr, _ 
       FileFormat:=FileFormatNum 
     On Error Resume Next 
     For I = 1 To 3 
      .SendMail "[email protected]", _ 
         "This is the Subject line" 
      If Err.Number = 0 Then Exit For 
     Next I 
     On Error GoTo 0 
     .Close SaveChanges:=False 
    End With 

    'Delete the file you have send 
    Kill TempFilePath & TempFileName & FileExtStr 

    With Application 
     .ScreenUpdating = True 
     .EnableEvents = True 
    End With 
End Sub 

問候,

1

here如果它可以幫助你。

我正在尋找解決方案,將多個Excel 2007單元格複製/粘貼到帶有VBA的Outlook郵件正文中,但既沒有直接複製/粘貼,MsgBody.HTMLBody = Range.Text也沒有剪貼板(通過DataObject)工作。 然後,我覺得這個以前的解決方案,它解決了我的問題,希望這也能幫助你:)

乾杯!

相關問題