Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Excel发送自动填充的Outlook电子邮件模板,其中包含多个单元格文本正文和其他文本格式_Excel_Vba_Email_Outlook - Fatal编程技术网

从Excel发送自动填充的Outlook电子邮件模板,其中包含多个单元格文本正文和其他文本格式

从Excel发送自动填充的Outlook电子邮件模板,其中包含多个单元格文本正文和其他文本格式,excel,vba,email,outlook,Excel,Vba,Email,Outlook,我在Outlook中保存了一个电子邮件模板。我每天发很多次这封邮件。我发送的每封电子邮件都格式为粗体彩色文本、公司徽标以及收件人的唯一信息 唯一的信息是在excel中生成的,因此我一直在手动将excel信息复制并粘贴到Outlook模板中 我想找到一种方法让excel为我自动填充模板,包括主收件人、抄送收件人、主题和附件,以及粘贴到电子邮件正文中的单元格 我知道Microsoft Word中有一种邮件处理方法,但我不知道如何使其完全自动化。然后excel将执行所有操作,但它会忽略文本体中的所有格

我在Outlook中保存了一个电子邮件模板。我每天发很多次这封邮件。我发送的每封电子邮件都格式为粗体彩色文本、公司徽标以及收件人的唯一信息

唯一的信息是在excel中生成的,因此我一直在手动将excel信息复制并粘贴到Outlook模板中

我想找到一种方法让excel为我自动填充模板,包括主收件人、抄送收件人、主题和附件,以及粘贴到电子邮件正文中的单元格

我知道Microsoft Word中有一种邮件处理方法,但我不知道如何使其完全自动化。然后excel将执行所有操作,但它会忽略文本体中的所有格式,我无法让它为文本体选择多个单元格

我甚至不知道从哪里开始。下面是在outlook上发送电子邮件的基本VBA。但当然,电子邮件正文的范围不起作用

Sub SupplierTestingEmail()

   Dim olApp As Outlook.Application
      Set olApp = CreateObject("Outlook.Application")

        Dim olMail As Outlook.MailItem
        Set olMail = olApp.CreateItem(olMailItem)

        olMail.To = Range("B1")
        olMail.Subject = Range("B2")
        olMail.Body = Range("A1:C5")
        olMail.Display

End Sub
我希望电子邮件包括以下内容

1) 身体的一系列细胞
2) 公司标志
3) 彩色文本
4) 参考单元格
5) 附件
6) 复印件,我需要抄送某人

要在复制区域后保留原始格式,请使用,然后将其粘贴为
wdformatoriginalformat


范例

选项显式
公共子示例()
'添加引用-工具->引用->Microsoft Outlook XX.X对象库
Dim olApp作为Outlook.Application
Set olApp=newoutlook.Application
将电子邮件设置为Outlook.MailItem
设置Email=olApp.CreateItem(0)
'添加引用-工具->引用->Microsoft Word XX.X对象库

Dim wdDoc As Word.Document“对于多个单元格部分,为什么不循环遍历它们并生成一个字符串?使用
HTMLBody
而不是
Body
是否有帮助?HTMLBody仍然给出了一个错误。我不知道如何循环它们并构建一个字符串。
Option Explicit
Public Sub Example()
' add ref - tool -> references - > Microsoft Outlook XX.X Object Library
    Dim olApp As Outlook.Application
    Set olApp = New Outlook.Application

    Dim Email As Outlook.MailItem
    Set Email = olApp.CreateItem(0)

' add ref - tool -> references - > Microsoft Word XX.X Object Library
    Dim wdDoc As Word.Document '<=========
    Set wdDoc = Email.GetInspector.WordEditor

    Dim Sht As Excel.Worksheet
    Set Sht = ThisWorkbook.Worksheets("Sheet1")

    Dim rng As Range
    Set rng = Sht.Range("A4:H16").SpecialCells(xlCellTypeVisible)
        rng.Copy

    With Email
        .To = Sht.Range("C1")
        .Subject = Sht.Range("B1")
        .Display

         wdDoc.Range.PasteAndFormat Type:=wdFormatOriginalFormatting
    End With

End Sub