从Excel中将单元格的范围复制到Outlook中的电子邮件正文

如何使用VBA将Excel中的一系列单元格复制到Outlook中的电子邮件正文中(而不是将Excel文件作为附件添加)。 我只需要将内容作为Outlook邮件的主体。 任何人可以帮我编写这个使用macros?

你可以在这里find一个打包的解决scheme: 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 "ron@debruin.nl", _ "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 

问候,

看到这里,如果它可以帮助你。

我正在寻找一个解决scheme,用VBA将多个Excel 2007单元复制/粘贴到Outlook邮件正文,但是既没有直接复制/粘贴, MsgBody.HTMLBody = Range.Text也没有剪贴板(通过DataObject)。 然后,我觉得这个以前的解决scheme,它解决了我的问题,希望这也能帮助你:)

干杯!