【发布时间】:2010-09-21 04:45:38
【问题描述】:
如何使用 VBA 将 Excel 中的一系列单元格复制到 Outlook 中的电子邮件正文?
我只需要将内容作为 Outlook 邮件的正文即可。
【问题讨论】:
如何使用 VBA 将 Excel 中的一系列单元格复制到 Outlook 中的电子邮件正文?
我只需要将内容作为 Outlook 邮件的正文即可。
【问题讨论】:
您可以在这里找到打包的解决方案: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
问候,
【讨论】:
如果对您有帮助,请查看here。
我正在寻找一种解决方案,用 VBA 将多个 Excel 2007 单元格复制/粘贴到 Outlook 邮件正文中,但直接复制/粘贴、MsgBody.HTMLBody = Range.Text 或剪贴板(通过 DataObject)都不起作用。
然后我选择了以前的解决方案,它解决了我的问题,希望这对你也有帮助:)
干杯!
【讨论】: