【问题标题】:Send Data from Filtered Table via Outlook email通过 Outlook 电子邮件从筛选表发送数据
【发布时间】:2022-08-12 15:51:12
【问题描述】:

我正在尝试将 Outlook 电子邮件发送给指定的分销商,其中包含有关项目的信息和过滤表中的信息。

过滤器基于分销商的名称。

Sub EmailDistro_1()

    Dim xStrFile As String

    Dim xOutApp As outlook.Application
    Dim xMailOut As outlook.MailItem
    
    Application.ScreenUpdating = False
    Set xOutApp = CreateObject(\"Outlook.Application\")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    
    ActiveSheet.Range(\"Distributor\").AutoFilter field:=2, Criteria1:=Cells(2, 2).Value
    ActiveSheet.ListObjects(\"Distributor\").Range.Copy
        
    With xMailOut
        .Display
        .To = Range(\"D2\").Value
        .Subject = Range(\"B8\").Value & \" \" & Range(\"B9\").Value & \" - \" & Range(\"B11\").Value & \" Tile RFQ\"
        .HTMLBody = \"<p style=\'font-family:calibri;font-size:12.0pt\'>\" & Split(Range(\"C2\").Value, \" \")(0) & \",\" & \"<br/>\" & vbCrLf & \"Can you please provide me with pricing, lead times AND rough freight to Zipcode 21850 (Forklift on site).\" & \"<br/>\" & vbCrLf & \"<br/>\" & vbCrLf & .HTMLBody
    End With
    
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True

End Sub

我希望电子邮件如何填充。

我正在处理的 Excel 工作表。

    标签: excel vba outlook html-email


    【解决方案1】:

    请注意,要获取添加到消息正文的签名,您需要在处理代码中的HTMLBody 属性之前调用.Display 方法。

    您可以使用 Word 对象模型并将 Word 中表示的消息正文作为 Document 实例处理,因此您可以简单地使用 Paste 方法将复制的数据插入 Excel 中。 WordEditor 属性返回正在显示的消息的 Microsoft Word 文档对象模型。请参阅Chapter 17: Working with Item Bodies 了解更多信息。

    【讨论】:

    • 你可以再详细一点吗?你有什么问题?
    • 请参阅我的其他“答案”。我是 Stack 的新手;所以不确定如何回应其他人的回答的礼仪。
    • 首先,不需要同时设置HTMLBody属性和Word编辑器。
    • 谢谢你。希望其他人可以在这里添加一些额外的帮助。
    • 在处理代码中的HTMLBody 属性之前,您需要调用.Display 方法。
    猜你喜欢
    • 2016-05-11
    • 2011-09-14
    • 2012-03-03
    • 1970-01-01
    • 2017-01-06
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 2020-05-30
    相关资源
    最近更新 更多