excel - 如何在特定位置将 Excel 范围和文本添加到电子邮件正文?
问题描述
我想将 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
解决方案
在 VBA 中创建电子邮件正文。
把它放在一个变量中,包括你所有的段落和换行符。然后使用那个变量
email.HTMLBody = varEmailBody
编辑:如果你使用.HTMLBody
你不能复制/粘贴任何东西。您需要在某处(在您的代码中)将 HTML 构造为文本。Ron de Bruin 有各种 Excel 到 Outlook 电子邮件方案的优秀示例。这是在 HTML 正文中邮寄 Excel 范围的方法:https ://www.rondebruin.nl/win/s1/outlook/bmail2.htm -- 您可能需要在工作表中构建一个连续的范围(可能在隐藏的表),您可以在 VBA 中作为一个范围进行处理。
推荐阅读
- search - SourceForge 是否具有 Subversion 存储库搜索功能?
- python - 从不同模块导入同名函数语法问题
- jenkins - Jenkinsfile 库注释顺序
- python - fastapi 响应应该如何格式化?
- linux - 在 Android 模拟器上移除两指触摸
- ansible - 当我尝试在 Cisco 设备中执行 show version 时出错
- unit-testing - API 中的测试覆盖率
- javascript - HTML 模式未打开
- ruby-on-rails - 在 Rails 中实现 method_missing
- excel - 在 VBA 中提高 For Loop 和 With 语句的速度