You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Excel VBA将指定列区域内容转为纯文本写入Outlook邮件正文

Excel VBA 将指定列区域内容以纯文本写入Outlook邮件正文

以下是直接可用的代码示例,核心是把Excel区域内容转换成带排版的纯文本字符串,再写入Outlook邮件正文:

Sub ExportRangeToOutlookPlainText()
    Dim olApp As Object
    Dim olMail As Object
    Dim targetRange As Range
    Dim rowCount As Integer, colCount As Integer
    Dim textBody As String
    Dim i As Integer, j As Integer
    
    ' 指定要导出的Excel区域(示例:Sheet1的A2到C10)
    Set targetRange = ThisWorkbook.Sheets("Sheet1").Range("A2:C10")
    
    ' 初始化Outlook对象(后期绑定,无需手动添加引用)
    Set olApp = CreateObject("Outlook.Application")
    Set olMail = olApp.CreateItem(0) ' 0代表创建普通邮件
    
    ' 遍历区域,拼接纯文本内容
    rowCount = targetRange.Rows.Count
    colCount = targetRange.Columns.Count
    
    For i = 1 To rowCount
        For j = 1 To colCount
            ' 用制表符分隔列内容,空单元格显示为空字符串
            textBody = textBody & targetRange.Cells(i, j).Value & vbTab
        Next j
        ' 每行结束后换行,去掉最后一个多余的制表符
        textBody = Left(textBody, Len(textBody) - 1) & vbCrLf
    Next i
    
    ' 设置邮件基本信息
    With olMail
        .To = "收件人邮箱@xxx.com" ' 替换为实际收件人
        .Subject = "Excel导出的纯文本内容" ' 替换为实际主题
        .BodyFormat = 1 ' olFormatPlain,强制设置为纯文本格式
        .Body = textBody ' 写入纯文本正文
        .Display ' 显示邮件,如需直接发送改为.Send
    End With
    
    ' 释放对象
    Set olMail = Nothing
    Set olApp = Nothing
End Sub

关键说明

  • 区域内容拼接:通过双层循环遍历单元格,用vbTab(制表符)分隔列、vbCrLf(换行符)分隔行,保证纯文本排版清晰。
  • 纯文本格式强制设置:必须添加.BodyFormat = 1,避免Outlook自动将文本转为HTML格式导致排版错乱。
  • 后期绑定优势:用CreateObject创建Outlook对象,无需手动在VBA编辑器中添加Outlook类库引用,兼容性更强。
  • 自定义调整:如果需要替换列分隔符(比如用逗号代替制表符),直接把vbTab替换为", "即可;若要去掉末尾多余的换行,可在循环结束后执行textBody = Left(textBody, Len(textBody) - 2)。

内容的提问来源于stack exchange,提问作者g00re

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 22:33:11