【发布时间】:2020-07-27 11:06:10
【问题描述】:
我想将 Excel 工作表中多个范围的数据复制到电子邮件正文。
下面是我想出的代码。
如何使范围在另一个之下粘贴,以及如何在范围之后但在 Outlook 签名之前添加文本。
现在怎么样了:
Sub reportCostLunch()
Dim recipient(0) As Variant
recipient(0) = ""
Dim outlook As Object
Dim email As Object
Dim xInspect As Object
Dim pageEditor As Object
Dim lastRow As Long
Dim sheet, sheet1 As Worksheet
Dim SDest As String, title As String, slot As String
Set sheet = ThisWorkbook.Sheets("SHEET1")
Set sheet1 = ThisWorkbook.Sheets("SHEET2")
title = sheet.Range("D13").Value
Set outlook = CreateObject("Outlook.Application")
Set email = outlook.CreateItem(0)
With email
SDest = ""
For i = LBound(recipient) To UBound(recipient)
If SDest = "" Then
SDest = recipient(i)
Else
SDest = SDest & ";" & recipient(i)
End If
Next i
.To = SDest
.Subject = title
.Display
Set xInspect = email.GetInspector
Set pageEditor = xInspect.WordEditor
Worksheets("SHEET2").Range("C44:AF71").Copy
pageEditor.Application.Selection.start = 1
pageEditor.Application.Selection.End = pageEditor.Application.Selection.start
pageEditor.Application.Selection.PasteAndFormat (wdChartPicture)
pageEditor.Application.Selection.InsertParagraphAfter
Worksheets("SHEET2").Range("C26:AF44").Copy
pageEditor.Application.Selection.PasteAndFormat (wdChartPicture)
pageEditor.Application.Selection.InsertParagraphAfter
.Display
email.HTMLBody = "SOME TEXT " _
& email.HTMLBody & " some text"
Set pageEditor = Nothing
Set xInspect = Nothing
End With
Set email = Nothing
Set outlook = Nothing
Application.CutCopyMode = False
End Sub
【问题讨论】: