How to make Text Body in VB <b> not working

喜你入骨 提交于 2019-12-24 12:34:59

问题


I have a code to send email from excel. All the info is taken from cells. I am trying to make "J4" bold but it says symtex error when I use . Sorry i'm pretty new to VBA so please explain as if i'm a complete noob. Code is:

Sub SendMassEmail()

    Row_Number = 1

    Do
        DoEvents
        Row_Number = Row_Number + 1
        Dim Mail_Body_Message As String
        Dim Full_Name As String
        Dim Twitter_Code As String


        Mail_Body_Message = Sheet1.Range("J2") & vbNewLine & Sheet1.Range("J3") & vbNewLine & Sheet1.Range("J4") & vbNewLine & Sheet1.Range("J5") & vbNewLine & Sheet1.Range("J6")

        Full_Name = Sheet1.Range("B" & Row_Number)
        Twitter_Code = Sheet1.Range("D" & Row_Number)

        Mail_Body_Message = Replace(Mail_Body_Message, "replace_name_here", Full_Name)
        Mail_Body_Message = Replace(Mail_Body_Message, "promo_code_replace", Twitter_Code)
        MsgBox Mail_Body_Message


        Call SendTheEmail(Sheet1.Range("A" & Row_Number), "This is the Subject", Mail_Body_Message)

    Loop Until Row_Number = 5

    MsgBox "**Emails Sent**"




End Sub

回答1:


The problem here is that the variable Mail_Body_Message is just text. There is no way to indicate when something is bold or a color. You must use HTML in your email to achieve what you want. For example:

Replace

Mail_Body_Message = Sheet1.Range("J2") & vbNewLine & Sheet1.Range("J3") & vbNewLine & Sheet1.Range("J4") & vbNewLine & Sheet1.Range("J5") & vbNewLine & Sheet1.Range("J6")

With

Mail_Body_Message = "<HTML><BODY><font size=3>" & Sheet1.Range("J2") & vbNewLine & Sheet1.Range("J3") & vbNewLine & "<b>" & Sheet1.Range("J4") & "</b>" & vbNewLine & Sheet1.Range("J5") & vbNewLine & Sheet1.Range("J6") & "</font></BODY></HTML>"

There is some more work you need to do. You must set your mail item's body format to olFormatHTML. You must also set the HTMLBody of the message to your variable. Basically, you'll need something like this:

Set MItem = OutlookApp.CreateItem(olMailItem)
With MItem
    .To = EmailAddr
    .Subject = Subj
    .BodyFormat = olFormatHTML
    .HTMLBody = Mail_Body_Message
    .Send
End With

You can also change the color of text with HTML font tags. For example:

Mail_Body_Message = "<font color='red'>" & VBAVariable & "</font>" 


来源:https://stackoverflow.com/questions/33373280/how-to-make-text-body-in-vb-b-not-working

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!