【问题标题】:Extract CurrentRegion into email body将 CurrentRegion 提取到电子邮件正文中
【发布时间】:2022-06-21 04:04:18
【问题描述】:

CurrentRegion 已提取但未显示在电子邮件正文中

Sub Draft()

    Dim myDataRng As Range
    Set myDataRng = Range("c2:c2")

    Dim data As String
    data = Range("B11").CurrentRegion.Select

    For Each Cell In myDataRng
        If Cell.Value > 0 Then
            Dim objOutlook As Object
            Set objOutlook =     CreateObject("outlook.application")

            Dim objEmail As Object
            Set objEmail = objOutlook.CreateItem(olMailItem)

            Range("K2").Select

            With objEmail
                .SentOnBehalfOfName = "accounting@test.co.uk"
                .to = ActiveCell.Offset(0, 1).Value
                .Subject = ActiveCell.Offset(7, 0).Value
                .htmlbody = "Supplier Code " & " " & Cell.Offset(0, 0).Value & "<br>" & "Supplier Name: " & " " & Cell.Offset(1, 0).Value & "<br>" & "Currency " & " " & Cell.Offset(2, 0).Value & "<br>" & "<br>" & "Dear Supplier," & "<br>" & "<br>" & "A payment has been issued to you, as detailed below. " & "<br>" & data & "<br>" & "<br>" & "Kind Regards,<br>Johnny Grif <br>Accounts Assistant/Accounts Department" & "<br>" & "T:+44(0)1234 567 890" & "<br>" & "E:accounting@test.co.uk"
                .Save
            End With

            Set objOutlook = Nothing
        End If
    Next Cell

    Set myDataRng = Nothing
    Set objEmail = Nothing: Set objOutlook = Nothing
    MsgBox "Please check pyament advice in your draft folder!"

End Sub

最后的结果是这样的。

尊敬的供应商,

已向您支付了一笔款项,详情如下。
是的

亲切的问候,
Johnny Grif
会计助理/会计部门
电话:+44 (0)1234 567 890
E:accounting@test.co.uk

下面是输出:

【问题讨论】:

    标签: excel vba email outlook


    【解决方案1】:

    以下代码是问题的原因:

    .htmlbody = "Supplier Code " & " " & Cell.Offset(0, 0).Value & "<br>" & "Supplier Name: " & " " & Cell.Offset(1, 0).Value & "<br>" & "Currency " & " " & Cell.Offset(2, 0).Value & "<br>" & "<br>" & "Dear Supplier," & "<br>" & "<br>" & 
    "A payment has been issued to you, as detailed below. " & "<br>" & data & "<br>" & "<br>" & "Kind Regards,<br>Johnny Grif <br>Accounts Assistant/Accounts Department" & "<br>" & "T:+44(0)1234 567 890" & "<br>" & "E:accounting@test.co.uk"
    

    首先,消息正文标记应由格式良好的 HTML 文档/字符串表示。

    其次,如果您需要在代码中换行,则需要在代码中使用下划线_ 字符才能正确组装行。

    第三,我建议打破代码并尝试从多个部分组装最终,这样您就可以找出代码无法正常工作的原因。

    【讨论】:

    • 1+3 实际上代码有效,但只有当前区域的一部分显示为“true”,而不是数据。我只删除了这篇文章的下划线,但它在原始编码中。那么“数据”部分的问题是什么,我已经google并试图纠正但徒劳无功,请你帮我告诉我哪里出了问题吗???非常感谢。
    • 在分配给HTMLBody属性之前尝试组装一个字符串。你得到一个有效的字符串吗?
    • 其实是一个3行7列的表格范围,但是不能正确显示,只是显示一个“真”字
    • 那么,问题在于将数据从 Excel 转换为字符串值?
    • 它如何在电子邮件正文中显示为表格,就像我在 Excel 中看到的一样?即使我将“dim data as string”更改为dim data as Range”,结果也不正确............
    猜你喜欢
    • 1970-01-01
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    • 2011-05-15
    • 2011-08-24
    相关资源
    最近更新 更多